कई कंप्यूटर एप्लिकेशन्स को यादृच्छिक संख्या जनरेट करने की आवश्यकता होती है। हालांकि, उनमें से कोई भी वास्तव में यादृच्छिक संख्या जनरेट नहीं करता। पायथन, किसी अन्य प्रोग्रामिंग तकनीक की तरह, एक छद्म-यादृच्छिक जनरेटर का उपयोग करता है। पायथन की यादृच्छिक जनरेशन Mersenne Twister एल्गोरिदम पर आधारित है जो 53-बिट परिशुद्धता फ्लोट्स उत्पन्न करता है। यह तकनीक तेज और थ्रेड-सेफ है लेकिन क्रिप्टोग्राफिक उद्देश्य के लिए उपयुक्त नहीं है।
पायथन की स्टैंडर्ड लाइब्रेरी में random मॉड्यूल होता है जो यादृच्छिकता को संभालने के लिए विभिन्न फ़ंक्शन्स को परिभाषित करता है।
random.seed() - यह फ़ंक्शन यादृच्छिक संख्या जनरेटर को इनिशियलाइज़ करता है। जब random मॉड्यूल इम्पोर्ट किया जाता है, तो जनरेटर सिस्टम समय की मदद से इनिशियलाइज़ होता है। जनरेटर को रीसीड करने के लिए, किसी भी int, str, byte या bytearray ऑब्जेक्ट का उपयोग करें।
random.getstate() - यह फ़ंक्शन setstate() फ़ंक्शन के साथ मिलकर वही यादृच्छिक डेटा बार-बार पुन: पेश करने में मदद करता है। getstate() फ़ंक्शन यादृच्छिक संख्या जनरेटर की आंतरिक स्थिति लौटाता है।
random.setstate() - यह फ़ंक्शन जनरेटर की आंतरिक स्थिति को पुनर्स्थापित करता है।
यादृच्छिक पूर्णांक जनरेशन
random.randrange() - यह फ़ंक्शन दी गई रेंज के बीच एक यादृच्छिक पूर्णांक जनरेट करता है। यह तीन पैरामीटर्स ले सकता है।
random.randrange(start, stop, step)
start और step पैरामीटर्स वैकल्पिक हैं। उनके डिफ़ॉल्ट मान क्रमशः 0 और 1 हैं। Step क्रमिक संख्याओं के बीच अंतराल निर्धारित करता है।
>>> random.randrange(10) 5 >>> random.randrange(10, 20) 17 >>> random.randrange(100, 200, 2) 188
(नोट: उपरोक्त स्टेटमेंट्स का आउटपुट, और इस लेख के बाकी स्टेटमेंट्स भी समान नहीं हो सकते क्योंकि वे यादृच्छिक रूप से जनरेट होते हैं)
random.randint() - यह फ़ंक्शन दो पैरामीटर्स के बीच एक यादृच्छिक पूर्णांक जनरेट करता है। यह randrange() फ़ंक्शन के समान है बिना step पैरामीटर के। Start पैरामीटर अनिवार्य है।
>>> random.randint(1, 10) 6 >>> random.randint(100, 200) 134
फ्लोटिंग पॉइंट यादृच्छिक संख्याएँ
random.random() - यह फ़ंक्शन 0.0 और 1.0 के बीच एक यादृच्छिक फ्लोटिंग पॉइंट संख्या जनरेट करता है।
>>> random.random() 0.668544544081956
random.uniform() - यह फ़ंक्शन दो पैरामीटर्स के बीच एक यादृच्छिक फ्लोटिंग पॉइंट संख्या लौटाता है।
>>> random.uniform(0.5, 1.5) 1.2760281470664903 >>> random.uniform(1, 10) 7.336985794193224 >>> random.uniform(10, 5) 7.817794757786727
सीक्वेंस ऑब्जेक्ट्स पर कार्य करने वाले फ़ंक्शन्स
random.choice() - यह फ़ंक्शन सीक्वेंस से एक यादृच्छिक एलिमेंट चुनता है। यदि सीक्वेंस खाली है, तो IndexError फेंका जाता है।
>>> random.choice("Tutorialspoint")
'o'
>>> random.choice(range(10))
2
>>> random.choice([15, 31, 6, 29, 55, 5])
55
>>> random.choice((15, 31, 6, 29, 25, 55))
15
random.choices() - यह फ़ंक्शन लिस्ट से कई एलिमेंट्स को यादृच्छिक तरीके से चुनता है। इस फ़ंक्शन का पहला पैरामीटर सीक्वेंस है और दूसरा पैरामीटर किए जाने वाले विकल्पों की संख्या है।
>>> name = "TutorialsPoint" >>> random.choices(name, k=2) ['T', 'o']
random.shuffle() - यह फ़ंक्शन म्यूटेबल सीक्वेंस में एलिमेंट्स को पुनर्व्यवस्थित करता है और उन्हें यादृच्छिक रूप से रखता है।
>>> num = [10, 20, 30, 40, 50] >>> random.shuffle(num) >>> num [50, 20, 40, 30, 10]
random.sample() - यह फ़ंक्शन इम्यूटेबल सीक्वेंस के साथ काम करता है। यह सीक्वेंस को बरकरार रखते हुए यादृच्छिक रूप से चुने गए आइटम्स की सूची लौटाता है।
>>> name = "TutorialsPoint"
>>> nm = random.sample(name, k=2)
>>> name, nm
('TutorialsPoint', ['i', 'a'])