यादृच्छिक (), रैंडरेंज (), और रैंडिंट () सहित पायथन में यादृच्छिक दशमलव और पूर्णांक उत्पन्न करना

व्यापार

पायथन मानक पुस्तकालय के यादृच्छिक मॉड्यूल में यादृच्छिक (), वर्दी (), रैंडेंज (), और रैंडिंट () फ़ंक्शन का उपयोग करके यादृच्छिक संख्याएं उत्पन्न की जा सकती हैं।

यादृच्छिक मॉड्यूल मानक पुस्तकालय में शामिल है, इसलिए किसी अतिरिक्त स्थापना की आवश्यकता नहीं है। बेशक, आपको इसे आयात करने की आवश्यकता है।

निम्नलिखित जानकारी यहाँ प्रदान की गई है।

  • random.random()(0.0 और 1.0 . के बीच फ़्लोटिंग पॉइंट नंबर)
  • random.uniform()(फ़्लोटिंग पॉइंट नंबरों की कोई भी श्रेणी)
  • एक सामान्य वितरण, गाऊसी वितरण, आदि का पालन करने वाली यादृच्छिक संख्याएँ उत्पन्न करें।
  • random.randrange()(मनमाना श्रेणी और चरण का पूर्णांक)
  • random.randint()(किसी भी श्रेणी में एक पूर्णांक)
  • तत्वों के रूप में यादृच्छिक संख्याओं के साथ एक सूची बनाना
    • यादृच्छिक फ़्लोटिंग-पॉइंट नंबरों की सूची
    • पूर्णांक यादृच्छिक संख्याओं की सूची
  • यादृच्छिक संख्या जनरेटर प्रारंभ करें (यादृच्छिक संख्या बीज को ठीक करें)

किसी सूची के तत्वों को यादृच्छिक रूप से निकालने या क्रमबद्ध करने के तरीके पर निम्न आलेख देखें।

random.random()(0.0 और 1.0 . के बीच फ़्लोटिंग पॉइंट नंबर)

रैंडम मॉड्यूल का फंक्शन रैंडम () एक रैंडम फ्लोटिंग-पॉइंट नंबर फ्लोट टाइप करता है जो 0.0 और 1.0 के बीच होता है।

import random

print(random.random())
# 0.4496839011176701

random.uniform()(फ़्लोटिंग पॉइंट नंबरों की कोई भी श्रेणी)

uniform(a, b)इस यादृच्छिक मॉड्यूल के कार्य निम्न में से किसी भी श्रेणी में फ़्लोटिंग-पॉइंट नंबर फ्लोट प्रकार की यादृच्छिक संख्या उत्पन्न करते हैं

  • a <= n <= b
  • b <= n <= a
import random

print(random.uniform(100, 200))
# 175.26585048238275

दो तर्क या तो बड़े या छोटे हो सकते हैं; अगर वे बराबर हैं, तो वे स्वाभाविक रूप से केवल उस मूल्य को वापस कर देंगे। वापसी मूल्य हमेशा एक फ्लोट होता है।

print(random.uniform(100, -100))
# -27.82338731501028

print(random.uniform(100, 100))
# 100.0

तर्क को एक फ्लोट के रूप में भी निर्दिष्ट किया जा सकता है।

print(random.uniform(1.234, 5.637))
# 2.606743596829249

क्या b का मान श्रेणी में शामिल है, दस्तावेज़ के अनुसार निम्नलिखित राउंडिंग पर निर्भर करता है।
a + (b-a) * random.random()

समापन बिंदु मान b श्रेणी में है या नहीं, यह निम्न समीकरण में फ़्लोटिंग पॉइंट राउंडिंग पर निर्भर करता है
a + (b-a) * random()
random.uniform() — Generate pseudo-random numbers — Python 3.10.2 Documentation

एक सामान्य वितरण, गाऊसी वितरण, आदि का पालन करने वाली यादृच्छिक संख्याएँ उत्पन्न करें।

उपरोक्त यादृच्छिक () और वर्दी () फ़ंक्शन समान रूप से वितरित यादृच्छिक संख्याएं उत्पन्न करते हैं, लेकिन फ़्लोटिंग पॉइंट नंबर उत्पन्न करने के लिए फ़ंक्शन भी हैं जो निम्नलिखित वितरण का पालन करते हैं।

  • बीटा वितरण:random.betavariate()
  • घातांकी रूप से वितरण:random.expovariate()
  • गामा वितरण:random.gammavariate()
  • गाऊसी वितरण:random.gauss()
  • असामान्य वितरण:random.lognormvariate()
  • सामान्य वितरण:random.normalvariate()
  • वॉन मिज़ वितरण:random.vonmisesvariate()
  • पारेतो वितरण:random.paretovariate()
  • वेइबुल वितरण:random.weibullvariate()

प्रत्येक वितरण के पैरामीटर तर्कों द्वारा निर्दिष्ट किए जाते हैं। विवरण के लिए आधिकारिक दस्तावेज देखें।

random.randrange()(मनमाना श्रेणी और चरण का पूर्णांक)

randrange(start, stop, step)
इस यादृच्छिक मॉड्यूल का कार्य निम्नलिखित तत्वों में से एक यादृच्छिक रूप से चयनित तत्व देता है।
range(start, stop, step)

जैसा कि रेंज () के साथ होता है, तर्क शुरू होते हैं और चरण को छोड़ा जा सकता है। यदि उन्हें छोड़ दिया जाता है, तो प्रारंभ = 0 और चरण = 1।

import random

print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

print(random.randrange(10))
# 5

तर्क चरण को एक सम या विषम यादृच्छिक पूर्णांक, या एक यादृच्छिक पूर्णांक जो तीन का गुणज है, उत्पन्न करने के लिए सेट किया जा सकता है।

उदाहरण के लिए, यदि प्रारंभ सम है और चरण = 2 है, तो श्रेणी में केवल सम पूर्णांक यादृच्छिक रूप से प्राप्त किए जा सकते हैं।

print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]

print(random.randrange(10, 20, 2))
# 18

random.randint()(किसी भी श्रेणी में एक पूर्णांक)

randint(a, b)
इस यादृच्छिक मॉड्यूल का कार्य निम्नलिखित यादृच्छिक पूर्णांक int देता है।
a <= n <= b
randrange(a, b + 1)इसके बराबर; ध्यान दें कि b का मान भी श्रेणी में शामिल है।

print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74

तत्वों के रूप में यादृच्छिक संख्याओं के साथ एक सूची बनाना

इस खंड में, हम बताएंगे कि तत्वों के रूप में यादृच्छिक संख्याओं के साथ एक सूची बनाने के लिए मानक पुस्तकालय के यादृच्छिक मॉड्यूल का उपयोग कैसे करें।

फ़्लोटिंग-पॉइंट फ़्लोट्स के साथ यादृच्छिक संख्याओं की सूची

एक सूची बनाने के लिए जिसके तत्व फ्लोटिंग-पॉइंट रैंडम नंबर हैं, रैंडम () और यूनिफ़ॉर्म () फ़ंक्शंस को लिस्ट कॉम्प्रिहेंशन नोटेशन के साथ मिलाएं।

import random

print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]

ऊपर के उदाहरण में, रेंज () का उपयोग किया जाता है, लेकिन वांछित संख्या में तत्वों के लिए सूचियाँ और टुपल्स भी संभव हैं। सूची समझ के बारे में अधिक जानकारी के लिए, कृपया निम्नलिखित लेख देखें।

पूर्णांक पूर्णांक की सूची यादृच्छिक संख्या

एक सूची बनाते समय जिसके तत्व पूर्णांक यादृच्छिक संख्याएं हैं, उपरोक्त रैंडेंज () और रैंडिंट () को सूची बोध संकेतन के साथ मिलाने से डुप्लिकेट मान हो सकते हैं।

print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]

यदि आप दोहराव के बिना पूर्णांकों का एक यादृच्छिक अनुक्रम बनाना चाहते हैं, तो random.sample() का उपयोग करके एक मनमाना श्रेणी के साथ श्रेणी () के तत्वों को निकालें।

print(random.sample(range(10), k=5))
# [6, 4, 3, 7, 5]

print(random.sample(range(100, 200, 10), k=5))
# [130, 190, 140, 150, 170]

Random.sample () के बारे में अधिक जानकारी के लिए, कृपया निम्न आलेख देखें।

यादृच्छिक संख्या जनरेटर प्रारंभ करें (यादृच्छिक संख्या बीज को ठीक करें)

रैंडम मॉड्यूल के फंक्शन सीड () को एक मनमाना पूर्णांक देकर, रैंडम नंबर सीड को तय किया जा सकता है और रैंडम नंबर जनरेटर को इनिशियलाइज़ किया जा सकता है।

एक ही बीज के साथ आरंभीकरण के बाद, यादृच्छिक मूल्य हमेशा उसी तरह उत्पन्न होता है।

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025

random.seed(0)
print(random.random())
# 0.8444218515250481

print(random.random())
# 0.7579544029403025