यादृच्छिक संख्याएँ उत्पन्न करना

Python:
यादृच्छिक संख्याएँ उत्पन्न करना

कैसे करें:

Python random मॉड्यूल प्रदान करता है जो विभिन्न उपयोगों के लिए यादृच्छिक संख्याएं उत्पन्न करने में मदद करता है। यहाँ शुरू करने का तरीका है:

  1. मॉड्यूल आयात करना

     import random
  2. एक यादृच्छिक पूर्णांक उत्पन्न करना किसी भी दो संख्याओं के बीच।

    random_integer = random.randint(1, 10)
    print(random_integer)

    नमूना आउटपुट: 7

  3. एक फ्लोट उत्पन्न करना 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

  4. सूची से एक यादृच्छिक तत्व चुनना

    greetings = ['Hello', 'Hi', 'Hey', 'Hola', 'Bonjour']
    print(random.choice(greetings))

    नमूना आउटपुट: Hola

  5. एक सूची को शफल करना कार्ड खेल या किसी भी अनुप्रयोग के लिए आदर्श जिसे क्रम को यादृच्छिक बनाने की आवश्यकता होती है।

    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 मॉड्यूल को शामिल किया है। यह विकास सॉफ्टवेयर डेवलपमेंट में सुरक्षा के बढ़ते महत्व और एन्क्रिप्शन से लेकर सुरक्षित टोकन उत्पन्न करने तक के एप्लिकेशनों में अधिक मजबूत यादृच्छिकता की आवश्यकता को दर्शाता है।