साधे यादृच्छिक संख्या जनरेटर. फीडबॅकसह लिनियर शिफ्ट रजिस्टर. जनरेटरची गुणवत्ता तपासत आहे

बातम्या 23.04.2019
बातम्या

संगणक प्रोग्राम्सना अनेकदा यादृच्छिकतेचे अनुकरण आवश्यक असते. उदाहरणार्थ, खेळ विकसित करताना. जर प्रोग्राममध्ये एक विशिष्ट जनरेटर असेल, म्हणजे, यादृच्छिक संख्येचा निर्माता, तर, अशा प्रकारे प्राप्त केलेल्या संख्येचा वापर करून, आपण प्रोग्रामच्या अंमलबजावणीची एक किंवा दुसरी शाखा किंवा संग्रहातून एक अनियंत्रित ऑब्जेक्ट निवडू शकता. दुसऱ्या शब्दांत, मुख्य गोष्ट म्हणजे संख्या निर्माण करणे. वेगळ्या प्रकारच्या यादृच्छिकतेचे अनुकरण त्यावर आधारित आहे.

निसर्गात यादृच्छिकता आहे की नाही, किंवा केवळ आपल्या ज्ञानाच्या मर्यादांमुळे ती आपल्याला दिसते की नाही हे आपल्याला निश्चितपणे माहित नाही. आम्हाला फक्त माहित आहे की प्रोग्रामिंगमध्ये वास्तविक यादृच्छिकता नाही. अनियंत्रित संख्या कोठेही नाही, त्याचे स्वरूप कोठूनही प्रोग्राम करणे अशक्य आहे. आपण फक्त एक प्रोग्राम तयार करू शकता जो "धान्य" वर जटिल सूत्र लागू केल्यामुळे एक संख्या तयार होईल आणि आम्हाला असे वाटेल की ही संख्या यादृच्छिक आहे.

“ग्रेन” हा सूत्रासाठी इनपुट डेटा आहे. हे, उदाहरणार्थ, मिलिसेकंदांमध्ये सिस्टम वेळ असू शकते, जो सतत बदलत असतो. परिणामी, "धान्य" सतत भिन्न असेल. किंवा प्रोग्रामर ते स्वतः सेट करू शकतो.

अशा प्रोग्रामला (वास्तविकपणे मॉड्यूल किंवा फंक्शन) स्यूडोरंडम नंबर जनरेटर म्हणतात. पायथन मानक लायब्ररीमध्ये यादृच्छिक मॉड्यूल समाविष्ट आहे. यात यादृच्छिकतेचे अनुकरण करण्याशी संबंधित अनेक कार्ये आहेत (उदाहरणार्थ, अनुक्रमाचे "शफलिंग" घटक), आणि केवळ स्यूडोरँडम क्रमांक तयार करण्यासाठी कार्ये नाहीत.

हे ट्यूटोरियल यादृच्छिक मॉड्यूलमधील random(), randrange() आणि randint() फंक्शन्स कव्हर करेल. कृपया लक्षात घ्या की यादृच्छिक मॉड्यूलमध्ये त्याच नावाचे random() फंक्शन आहे. असे घडत असते, असे घडू शकते.

फंक्शन्समध्ये प्रवेश करण्यासाठी, तुम्हाला यादृच्छिक मॉड्यूल आयात करण्याची आवश्यकता आहे:

>>> यादृच्छिक आयात करा

किंवा त्यातून वैयक्तिक कार्ये आयात करा:

>>> यादृच्छिक आयात यादृच्छिक , randrange, randint वरून

"यादृच्छिक" पूर्णांक संख्या मिळविण्यासाठी कार्ये - randint() आणि randrange()

randint() आणि randrange() फंक्शन्स स्यूडोरँडम पूर्णांक तयार करतात. त्यापैकी पहिला सर्वात सोपा आहे आणि नेहमी फक्त दोन युक्तिवाद घेतात - पूर्णांक श्रेणीची मर्यादा ज्यामधून कोणतीही संख्या निवडली जाते:

>>> यादृच्छिक .randint (0 , 10 ) 6

किंवा (वैयक्तिक कार्ये आयात केली असल्यास):

>>> रँडिंट (100 , 200 ) 110

randint() च्या बाबतीत, दोन्ही सीमा श्रेणीमध्ये समाविष्ट केल्या आहेत, म्हणजे, गणिताच्या भाषेत, विभागाचे वर्णन .

संख्या नकारात्मक असू शकतात:

>>> यादृच्छिक .randint (-100 , 10 ) -83 >>> यादृच्छिक .randint (-100 , -10 ) -38

परंतु पहिली संख्या नेहमी दुसऱ्यापेक्षा कमी किंवा किमान समान असणे आवश्यक आहे. म्हणजेच ए<= b.

randrange() फंक्शन अधिक क्लिष्ट आहे. यास एक, दोन किंवा तीनही तर्क लागू शकतात. जर फक्त एक निर्दिष्ट केले असेल, तर ते 0 आणि निर्दिष्ट युक्तिवाद दरम्यान एक यादृच्छिक संख्या मिळवते. शिवाय, युक्तिवाद स्वतःच श्रेणीमध्ये समाविष्ट केलेला नाही. गणिताच्या भाषेत, हे आहे)

आम्ही वाचण्याची शिफारस करतो

वर