पायथन स्टँडर्ड लायब्ररीच्या यादृच्छिक मॉड्यूलमध्ये यादृच्छिक (), युनिफॉर्म (), रँडिंग (), आणि रँडिंट () फंक्शन्स वापरून यादृच्छिक संख्या तयार केल्या जाऊ शकतात.
यादृच्छिक मॉड्यूल मानक लायब्ररीमध्ये समाविष्ट केले आहे, त्यामुळे कोणत्याही अतिरिक्त स्थापनेची आवश्यकता नाही. अर्थात, तुम्हाला ते आयात करावे लागेल.
खालील माहिती येथे दिली आहे.
random.random()
(0.0 आणि 1.0 दरम्यान फ्लोटिंग पॉइंट क्रमांक)random.uniform()
(फ्लोटिंग पॉइंट संख्यांची कोणतीही श्रेणी)- यादृच्छिक संख्या व्युत्पन्न करा जे सामान्य वितरण, गॉसियन वितरण इ.चे अनुसरण करतात.
random.randrange()
(अनियंत्रित श्रेणी आणि पायरी यांचा पूर्णांक)random.randint()
(कोणत्याही श्रेणीतील पूर्णांक)- घटक म्हणून यादृच्छिक संख्येसह सूची तयार करणे
- यादृच्छिक फ्लोटिंग-पॉइंट संख्यांची सूची
- पूर्णांक यादृच्छिक संख्यांची सूची
- यादृच्छिक क्रमांक जनरेटर सुरू करा (यादृच्छिक क्रमांकाचे बीज निश्चित करा)
सूचीतील घटक यादृच्छिकपणे कसे काढायचे किंवा क्रमवारी लावायचे यावर पुढील लेख पहा.
- random.random()(0.0 आणि 1.0 दरम्यान फ्लोटिंग पॉइंट क्रमांक)
- random.uniform()(फ्लोटिंग पॉइंट संख्यांची कोणतीही श्रेणी)
- यादृच्छिक संख्या व्युत्पन्न करा जे सामान्य वितरण, गॉसियन वितरण इ.चे अनुसरण करतात.
- random.randrange()(अनियंत्रित श्रेणी आणि पायरी यांचा पूर्णांक)
- random.randint()(कोणत्याही श्रेणीतील पूर्णांक)
- घटक म्हणून यादृच्छिक संख्येसह सूची तयार करणे
- यादृच्छिक क्रमांक जनरेटर सुरू करा (यादृच्छिक क्रमांकाचे बीज निश्चित करा)
random.random()(0.0 आणि 1.0 दरम्यान फ्लोटिंग पॉइंट क्रमांक)
यादृच्छिक मॉड्यूलचे फंक्शन random() 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
यादृच्छिक संख्या व्युत्पन्न करा जे सामान्य वितरण, गॉसियन वितरण इ.चे अनुसरण करतात.
वरील यादृच्छिक() आणि uniform() फंक्शन्स एकसमान वितरीत यादृच्छिक संख्या व्युत्पन्न करतात, परंतु फ्लोटिंग पॉइंट क्रमांक व्युत्पन्न करण्यासाठी फंक्शन्स देखील आहेत जे खालील वितरणाचे अनुसरण करतात.
- बीटा वितरण:
random.betavariate()
- घातांकीय वितरण:
random.expovariate()
- गॅमा वितरण:
random.gammavariate()
- गॉसियन वितरण:
random.gauss()
- सामान्य वितरण:
random.lognormvariate()
- सामान्य वितरण:
random.normalvariate()
- वॉन मिसेस वितरण:
random.vonmisesvariate()
- पॅरेटो वितरण:
random.paretovariate()
- Weibull वितरण:
random.weibullvariate()
प्रत्येक वितरणाचे पॅरामीटर्स वितर्कांद्वारे निर्दिष्ट केले जातात. तपशीलांसाठी अधिकृत दस्तऐवज पहा.
random.randrange()(अनियंत्रित श्रेणी आणि पायरी यांचा पूर्णांक)
randrange(start, stop, step)
या यादृच्छिक मॉड्यूलचे कार्य खालील घटकांमधून यादृच्छिकपणे निवडलेले घटक परत करते.range(start, stop, step)
range() प्रमाणे, वितर्क प्रारंभ आणि चरण वगळले जाऊ शकतात. ते वगळले असल्यास, start=0 आणि step=1.
import random
print(list(range(10)))
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(random.randrange(10))
# 5
युक्तिवादाची पायरी सम किंवा विषम यादृच्छिक पूर्णांक तयार करण्यासाठी सेट केली जाऊ शकते, किंवा एक यादृच्छिक पूर्णांक जो तीनचा गुणाकार आहे.
उदाहरणार्थ, जर प्रारंभ सम आणि step=2 असेल, तर केवळ श्रेणीतील पूर्णांक यादृच्छिकपणे मिळू शकतात.
print(list(range(10, 20, 2)))
# [10, 12, 14, 16, 18]
print(random.randrange(10, 20, 2))
# 18
random.randint()(कोणत्याही श्रेणीतील पूर्णांक)
randint(a, b)
या यादृच्छिक मॉड्यूलचे कार्य खालील यादृच्छिक पूर्णांक इंट मिळवते.a <= n <= b
randrange(a, b + 1)
याच्या बरोबरीने; लक्षात घ्या की श्रेणीमध्ये b चे मूल्य देखील समाविष्ट आहे.
print(random.randint(50, 100))
# print(random.randrange(50, 101))
# 74
घटक म्हणून यादृच्छिक संख्येसह सूची तयार करणे
या विभागात, आम्ही घटक म्हणून यादृच्छिक संख्येसह सूची तयार करण्यासाठी मानक लायब्ररीचे यादृच्छिक मॉड्यूल कसे वापरायचे ते स्पष्ट करू.
फ्लोटिंग-पॉइंट फ्लोट्ससह यादृच्छिक संख्यांची सूची
ज्यांचे घटक फ्लोटिंग-पॉइंट यादृच्छिक संख्या आहेत अशी सूची तयार करण्यासाठी, सूची आकलन नोटेशनसह random() आणि uniform() फंक्शन्स एकत्र करा.
import random
print([random.random() for i in range(5)])
# [0.5518201298350598, 0.3476911314933616, 0.8463426180468342, 0.8949046353303931, 0.40822657702632625]
वरील उदाहरणामध्ये, range() वापरले आहे, परंतु घटकांच्या इच्छित संख्येसाठी सूची आणि ट्यूपल्स देखील शक्य आहेत. सूची आकलनाच्या अधिक तपशीलांसाठी, कृपया खालील लेख पहा.
- संबंधित लेख:पायथन सूची आकलन संकेतन वापरणे
पूर्णांक इंट यादृच्छिक संख्यांची यादी
सूची व्युत्पन्न करताना ज्याचे घटक पूर्णांक यादृच्छिक संख्या आहेत, वरील randange() आणि randint() यांना यादी आकलन संकेतासह एकत्रित केल्याने डुप्लिकेट मूल्ये येऊ शकतात.
print([random.randint(0, 10) for i in range(5)])
# [8, 5, 7, 10, 7]
जर तुम्हाला डुप्लिकेशनशिवाय पूर्णांकांचा यादृच्छिक क्रम बनवायचा असेल, तर random.sample() वापरून range() चे घटक अनियंत्रित श्रेणीसह काढा.
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