PHP का mt_rand() फ़ंक्शन **मर्सन ट्विस्टर (Mersenne Twister) एल्गोरिदम** का उपयोग करके स्यूडो-रैंडम पूर्णांक जनरेट करता है। यह rand() का ड्रॉप-इन रिप्लेसमेंट है — तेज़ और बेहतर रैंडमनेस गुणवत्ता वाला।
सिंटैक्स
mt_rand(): int mt_rand(int $min, int $max): int
पैरामीटर्स
| पैरामीटर | विवरण |
|---|---|
$min | निचली सीमा (डिफ़ॉल्ट 0) |
$max | ऊपरी सीमा (डिफ़ॉल्ट mt_getrandmax()) |
लौटाया गया मान
$min और $max (सम्मिलित) के बीच स्यूडो-रैंडम पूर्णांक।
उदाहरण
1. बिना आर्गुमेंट्स
<?php echo "mt_rand() = " . mt_rand() . "\n"; echo "mt_rand() = " . mt_rand() . "\n"; ?>
mt_rand() = 173620951 mt_rand() = 749065865
2. कस्टम रेंज (11 से 30)
<?php echo "mt_rand(11,30) = " . mt_rand(11, 30) . "\n"; echo "mt_rand(11,30) = " . mt_rand(11, 30) . "\n"; ?>
mt_rand(11,30) = 24 mt_rand(11,30) = 14
3. फ्लोट आर्गुमेंट्स — भिन्नात्मक भाग अनदेखा
<?php echo "mt_rand(10.55, 50.95) = " . mt_rand(10.55, 50.95) . "\n"; ?>
mt_rand(10.5,50.95) = 31
महत्वपूर्ण विशेषताएँ
- 4x तेज़:
rand()से लगभग 4 गुना तेज़। - बेहतर वितरण: मर्सन ट्विस्टर का पीरियड 2¹⁹⁹³⁷-1 है।
- समान API:
rand()के समान सिंटैक्स। - डिफ़ॉल्ट रेंज: 0 से
mt_getrandmax()(64-बिट पर 2147483647)।
⚠️ सुरक्षा चेतावनी
क्रिप्टोग्राफ़िक उद्देश्यों के लिए उपयोग न करें! mt_rand() भी स्यूडो-रैंडम है और पूर्वानुमान योग्य है।
सुरक्षित विकल्प (PHP 7+)
<?php // क्रिप्टोग्राफ़िक रूप से सुरक्षित $secureInt = random_int(1, 100); $secureBytes = random_bytes(32); // 32 रैंडम बाइट्स ?>
rand() बनाम mt_rand()
| विशेषता | rand() | mt_rand() |
|---|---|---|
| एल्गोरिदम | प्लेटफॉर्म libc rand | मर्सन ट्विस्टर MT19937 |
| गति | बेसलाइन | ~4x तेज़ |
| अधिकतम मान | getrandmax() | mt_getrandmax() |
| सीड फ़ंक्शन | srand() | mt_srand() |
| क्रिप्टो-सुरक्षित | नहीं | नहीं |
PHP संस्करण
PHP 4, PHP 5, PHP 7, PHP 8+ में उपलब्ध।