Python:
यादृच्छिक संख्याएँ उत्पन्न करना
कैसे करें:
Python random
मॉड्यूल प्रदान करता है जो विभिन्न उपयोगों के लिए यादृच्छिक संख्याएं उत्पन्न करने में मदद करता है। यहाँ शुरू करने का तरीका है:
मॉड्यूल आयात करना
import random
एक यादृच्छिक पूर्णांक उत्पन्न करना किसी भी दो संख्याओं के बीच।
random_integer = random.randint(1, 10) print(random_integer)
नमूना आउटपुट:
7
एक फ्लोट उत्पन्न करना 0 और 1 के बीच।
random_float = random.random() print(random_float)
नमूना आउटपुट:
0.436432634653
यदि आपको एक अलग रेंज में फ्लोट की आवश्यकता है, तो गुणा करें:
random_float_range = random.random() * 5 # 0 से 5 तक print(random_float_range)
नमूना आउटपुट:
3.182093745
सूची से एक यादृच्छिक तत्व चुनना
greetings = ['Hello', 'Hi', 'Hey', 'Hola', 'Bonjour'] print(random.choice(greetings))
नमूना आउटपुट:
Hola
एक सूची को शफल करना कार्ड खेल या किसी भी अनुप्रयोग के लिए आदर्श जिसे क्रम को यादृच्छिक बनाने की आवश्यकता होती है।
numbers = list(range(10)) random.shuffle(numbers) print(numbers)
नमूना आउटपुट:
[2, 5, 0, 4, 9, 8, 1, 7, 6, 3]
गहन विवेचन
Python में random
मॉड्यूल एक प्सेउडोरैंडम नंबर जनरेटर (PRNG) का उपयोग करता है, विशेष रूप से मेर्सेन ट्विस्टर एल्गोरिदम, जो सामान्य उद्देश्यों के लिए अच्छा है लेकिन क्रिप्टोग्राफिक उद्देश्यों के लिए उपयुक्त नहीं है क्योंकि यदि पर्याप्त आउटपुट देखे जाते हैं तो इसकी पूर्वानुमानिता के कारण। Python 3.6 में पेश secrets
मॉड्यूल, सुरक्षा-संवेदनशील अनुप्रयोगों में क्रिप्टोग्राफिक रूप से मजबूत यादृच्छिक संख्याओं को उत्पन्न करने के लिए एक बेहतर विकल्प प्रदान करती है, उदाहरण के लिए, पासवर्ड रीसेट लिंक के लिए एक सुरक्षित, यादृच्छिक टोकन उत्पन्न करना:
import secrets
token = secrets.token_hex(16)
print(token)
इतिहास में, सचमुच यादृच्छिक संख्याएं उत्पन्न करना कंप्यूटिंग में एक चुनौती रही है, प्रारंभिक तरीकों में भौतिक घटनाओं या मैन्युअली दर्ज किए गए बीजों पर निर्भरता शामिल थी। मेर्सेन ट्विस्टर जैसे एल्गोरिदम का विकास और अपनाने से (जो Python के random
मॉड्यूल में डिफ़ॉल्ट रूप से कम से कम मेरे आखिरी ज्ञान अपडेट में 2023 तक इस्तेमाल किया गया है) महत्वपूर्ण प्रगति हुई। हालांकि, अधिक सुरक्षित और कुशल एल्गोरिदम की खोज जारी है, जिसने क्रिप्टोग्राफी से संबंधित कार्यों के लिए secrets
मॉड्यूल को शामिल किया है। यह विकास सॉफ्टवेयर डेवलपमेंट में सुरक्षा के बढ़ते महत्व और एन्क्रिप्शन से लेकर सुरक्षित टोकन उत्पन्न करने तक के एप्लिकेशनों में अधिक मजबूत यादृच्छिकता की आवश्यकता को दर्शाता है।