क्या एक न्यूनतम और अधिकतम के आधार पर एक यादृच्छिक संख्या उत्पन्न करने का एक तरीका है?
उदाहरण के लिए, यदि न्यूनतम 1 था और अधिकतम 20 तो उसे 1 और 20 के बीच कोई संख्या उत्पन्न करनी चाहिए, जिसमें 1 और 20 शामिल हैं?
क्या एक न्यूनतम और अधिकतम के आधार पर एक यादृच्छिक संख्या उत्पन्न करने का एक तरीका है?
उदाहरण के लिए, यदि न्यूनतम 1 था और अधिकतम 20 तो उसे 1 और 20 के बीच कोई संख्या उत्पन्न करनी चाहिए, जिसमें 1 और 20 शामिल हैं?
random_int()
के लिए random_bytes()
, या openssl_random_pseudo_bytes()
। जैसा कि @ साल्वाडोर डाली ने कहा कि rand()
क्रिप्टोग्राफिक रूप से सुरक्षित परिणाम उत्पन्न नहीं करते हैं। प्रलेखन php.net/manual/en/function.rand.php
जवाबों:
<?php
$min=1;
$max=20;
echo rand($min,$max);
?>
एक नए PHP7 में एक क्रिप्टोग्राफिक रूप से सुरक्षित छद्म यादृच्छिक पूर्णांकों के लिए एक समर्थन है ।
int random_int ( int $min , int $max )
random_int - क्रिप्टोग्राफ़िक रूप से सुरक्षित छद्म-यादृच्छिक पूर्णांक उत्पन्न करता है
जो मूल रूप से पिछले उत्तरों को अप्रचलित बनाता है।
random_int
और random_bytes
फ़ंक्शन के लिए करना चाहिए - github.com/paragonie/random_compat ।
random_int
? यदि यह "बेहतर" यादृच्छिक संख्या देता है, तो इसका उपयोग गैर-क्रिप्टो कारणों के लिए क्यों नहीं किया जाता है?
random_int
एस को बदल दें rand
। इसके अलावा, मेरा उपयोग मामला एक पुन: प्रयास एल्गोरिथ्म है, और मैं निश्चित रूप से उम्मीद के मुताबिक निष्क्रियता के कारण सोने के बाद कई असफल कार्यों को नहीं करना चाहता हूं
एक तेज़ तेज़ संस्करण mt_rand का उपयोग करेगा:
$min=1;
$max=20;
echo mt_rand($min,$max);
स्रोत: http://www.php.net/manual/en/function.mt-rand.php ।
नोट: आपके सर्वर को इस काम के लिए मठ PHP मॉड्यूल को सक्षम करने की आवश्यकता है। यदि यह नहीं है, तो अपने होस्ट को इसे सक्षम करने के लिए बग करें, या आपको सामान्य (और धीमे) रैंड () का उपयोग करना होगा।
मैंने यहां जवाबों को बंडल कर दिया है और इसे स्वतंत्र संस्करण बना दिया है;
function generateRandom($min = 1, $max = 20) {
if (function_exists('random_int')):
return random_int($min, $max); // more secure
elseif (function_exists('mt_rand')):
return mt_rand($min, $max); // faster
endif;
return rand($min, $max); // old
}
rand(1,20)
PHP के रैंड फंक्शन के लिए डॉक्स यहां हैं:
http://php.net/manual/en/function.rand.php
srand()
यादृच्छिक संख्या जनरेटर के बीज मूल्य निर्धारित करने के लिए फ़ंक्शन का उपयोग करें ।
इसको आजमाओ। यह आपकी इच्छा के अनुसार आईडी जनरेट करेगा।
function id()
{
// add limit
$id_length = 20;
// add any character / digit
$alfa = "abcdefghijklmnopqrstuvwxyz1234567890";
$token = "";
for($i = 1; $i < $id_length; $i ++) {
// generate randomly within given character/digits
@$token .= $alfa[rand(1, strlen($alfa))];
}
return $token;
}