PHP का lcg_value() फ़ंक्शन **0 और 1 के बीच स्यूडो-रैंडम फ्लोट** जनरेट करता है। LCG = **रैखिक सर्वांगसम जनरेटर (Linear Congruential Generator)** — सबसे पुराने स्यूडो-रैंडम एल्गोरिदम में से एक।
सिंटैक्स
lcg_value(): float
पैरामीटर्स
कोई पैरामीटर नहीं।
लौटाया गया मान
0.0 और 1.0 (सम्मिलित) के बीच स्यूडो-रैंडम फ्लोट।
उदाहरण
<?php echo "lcg_value() = " . lcg_value() . "\n"; echo "lcg_value() = " . lcg_value(); ?>
आउटपुट (उदाहरण)
lcg_value() = 0.45920201711279 lcg_value() = 0.18118693614628
विशेषताएँ
- रेंज: [0, 1] — दोनों अंत बिंदु संभव।
- एल्गोरिदम: रैखिक सर्वांगसम जनरेटर (LCG) — सरल, तेज़, लेकिन निम्न गुणवत्ता वाली रैंडमनेस।
- पीरियड: अपेक्षाकृत छोटा (~2³¹)।
- कोई सीड फ़ंक्शन नहीं: सीधे सीड नहीं कर सकते (आंतरिक स्टेट उपयोग करता है)।
तुलना: रैंडम फ़ंक्शन्स
| फ़ंक्शन | रेंज | एल्गोरिदम | गुणवत्ता | क्रिप्टो-सुरक्षित |
|---|---|---|---|---|
lcg_value() | [0, 1] फ्लोट | LCG | कम | नहीं |
rand() | [0, getrandmax()] इंट | प्लेटफॉर्म libc | कम | नहीं |
mt_rand() | [0, mt_getrandmax()] इंट | मर्सन ट्विस्टर | अच्छा | नहीं |
random_int() | कस्टम रेंज इंट | CSPRNG | उच्च | ✅ हाँ |
random_bytes() | रैंडम बाइट्स | CSPRNG | उच्च | ✅ हाँ |
उपयोग मामले
- सरल सिमुलेशन, खेल, गैर-महत्वपूर्ण रैंडमनेस।
[0,1]फ्लोट सीधे चाहिए जब (अन्य फ़ंक्शन्स पूर्णांक देते हैं)।- Monte Carlo सिमुलेशन (बड़े नमूनों के लिए नहीं)।
सावधानी
- क्रिप्टोग्राफी के लिए उपयुक्त नहीं।
- उच्च-गुणवत्ता रैंडमनेस के लिए
mt_rand()याrandom_int()उपयोग करें। - PHP 7.1+ में
mt_rand()बायस-फ्री है;lcg_value()में मामूली बायस हो सकता है।
PHP संस्करण
PHP 4, PHP 5, PHP 7, PHP 8+ में उपलब्ध।