समारोह rand() पर्ल में

में पर्ल प्रोग्रामिंग भाषा में बनाया गया है एक समारोह rand(). इस समारोह में प्रयोग किया जाता है करने के लिए यादृच्छिक संख्या उत्पन्न.

यहाँ एक उदाहरण है:

▶ Run
#!/usr/bin/perl

print rand(10);

इस कार्यक्रम को प्रदर्शित करता है के बीच एक यादृच्छिक संख्या 0 (समावेशी) के लिए 10 (लेकिन नहीं सहित संख्या 10).

उदाहरण के लिए, इस कार्यक्रम के लिए हो सकता है की संख्या 2.61509101678715.

प्रतिबंध

समारोह rand() रिटर्न एक कूट-यादृच्छिक संख्या है. कुछ स्थितियों में, कुछ शर्तों के तहत यह संभव है भविष्यवाणी करने के लिए क्या मूल्य रिटर्न समारोह rand(). यह इस से इस प्रकार है कि इस समारोह में नहीं है cryptographically मजबूत. इस समारोह में नहीं किया जाना चाहिए क्रिप्टोग्राफी, लेकिन कुछ पाने के लिए यादृच्छिक मूल्यों बाहर की गुंजाइश क्रिप्टोग्राफी-इस सुविधा के लिए आदर्श है.

तर्क

my $value1 = rand();
my $value2 = rand($number);

समारोह rand() इस्तेमाल किया जा सकता है किसी भी तर्क के बिना या वास्तव में उसे दे एक तर्क है. समारोह की उम्मीद है, संख्या तर्क के रूप में मूल्य. यदि इस समारोह को प्राप्त करता है के एक नंबर नहीं है वह उसे करने के लिए संख्या.

का उपयोग कर एक ही तर्क

जब का उपयोग कर सकारात्मक संख्या के रूप में तर्क के साथ एक समारोह rand() की संख्या देता है से अधिक या बराबर करने के लिए 0 और कड़ाई से कम से कम अपने तर्क. उदाहरण के लिए, यदि आप का उपयोग 100में तर्क के रूप में, आप प्राप्त कर सकते हैं संख्या 72.9877832186506 समारोह के रूप में परिणाम rand().

आप उपयोग कर सकते हैं आंशिक तर्क. यदि आप निर्दिष्ट rand(1.5), परिणाम एक से अधिक संख्या या बराबर 0 और कड़ाई से कम 1.5.

जब आप का उपयोग एक नकारात्मक संख्या तर्क के रूप में समारोह के एक नंबर देता है, जो सख्ती से अधिक से अधिक से अधिक निर्दिष्ट तर्क की तुलना में कम है या बराबर 0.

उपयोग के बिना तर्क

का उपयोग कर rand() के साथ कोई बहस नहीं है के रूप में एक ही है कि यह उपयोग करने के लिए तर्क के साथ 1. समारोह rand() में वापस आ जाएगी, जो एक नंबर की तुलना में अधिक है या बराबर 0 और कड़ाई से कम 1, उदाहरण के लिए 0.813735968739824.

▶ Run
#!/usr/bin/perl

print rand(1);

कृपया ध्यान दें, यदि आप निर्दिष्ट नहीं करते हैं, एक तर्क है, तर्क संख्या है 1, नहीं मान चर के $_. यदि आप चाहते हैं का उपयोग करने के लिए $_ मूल्य के रूप में rand(), यह आवश्यक है करने के लिए स्पष्ट रूप से लिखने:

▶ Run
#!/usr/bin/perl

$_ = 3;

print rand($_);

0 तर्क के रूप में मानों

संख्या 0 मूल्य के रूप में तर्क के समारोह rand() एक विशेष मामला है । rand(0) के रूप में ही है rand(1). समारोह में वापस आ जाएगी एक संख्या से अधिक या बराबर करने के लिए 0 और सख्ती से छोटे 1.

उपयोग के एक से अधिक तर्क

यदि हस्तांतरण समारोह rand() के एक से अधिक तर्क है, यह त्रुटि होगा:

Too many arguments for rand at script.pl line 3, near "2)"
Execution of script.pl aborted due to compilation errors.

सरकारी दस्तावेज

यहाँ उत्पादन के आदेश perldoc -f rand:

       rand EXPR
       rand    Returns a random fractional number greater than or equal to 0
               and less than the value of EXPR.  (EXPR should be positive.)
               If EXPR is omitted, the value 1 is used.  Currently EXPR with
               the value 0 is also special-cased as 1 (this was undocumented
               before Perl 5.8.0 and is subject to change in future versions
               of Perl).  Automatically calls "srand" unless "srand" has
               already been called.  See also "srand".

               Apply "int()" to the value returned by "rand()" if you want
               random integers instead of random fractional numbers.  For
               example,

                   int(rand(10))

               returns a random integer between 0 and 9, inclusive.

               (Note: If your rand function consistently returns numbers that
               are too large or too small, then your version of Perl was
               probably compiled with the wrong number of RANDBITS.)

               "rand()" is not cryptographically secure.  You should not rely
               on it in security-sensitive situations.  As of this writing, a
               number of third-party CPAN modules offer random number
               generators intended by their authors to be cryptographically
               secure, including: Data::Entropy, Crypt::Random,
               Math::Random::Secure, and Math::TrulyRandom.

अन्य लेख