Elixir:
यादृच्छिक संख्याएँ उत्पन्न करना
कैसे करें:
Elixir में यादृच्छिक संख्याएं उत्पन्न करने के लिए, मुख्य रूप से :rand
मॉड्यूल का उपयोग करते हैं जो इस उद्देश्य के लिए कई कार्य प्रदान करता है। आपको शुरू करने के लिए एक त्वरित गाइड यहाँ है:
सबसे पहले, यादृच्छिक संख्या जेनरेटर को एक अनूठी प्रारम्भिक बिंदु से प्रारम्भ करने के लिए सीड करें:
:rand.seed(:exsplus)
एक सीमा में यादृच्छिक पूर्णांक उत्पन्न करने के लिए, उपयोग करें:
random_integer = :rand.uniform(10) # 1 और 10 के बीच एक संख्या उत्पन्न करता है
IO.puts(random_integer)
0 और 1.0 के बीच एक यादृच्छिक फ्लोट के लिए:
random_float = :rand.uniform()
IO.puts(random_float)
आपको फ्लोट्स के लिए एक अधिक विशिष्ट श्रेणी की आवश्यकता हो सकती है, जिसके लिए थोड़ी अधिक गणना की आवश्यकता होती है:
min = 1.5
max = 5.5
random_float_range = min + (:rand.uniform() * (max - min))
IO.puts(random_float_range)
याद रखें, ये संख्याएं यादृच्छिक-भ्रमज हैं; ये बीज और एल्गोरिदम द्वारा निर्धारित होती हैं परंतु ज्यादातर अनुप्रयोगों के लिए पर्याप्त हैं।
गहराई में
Elixir की यादृच्छिक संख्या उत्पादन क्षमताएं Erlang के :rand
मॉड्यूल पर निर्भर करती हैं, जो इसकी विरासत और Erlang के साथ इसके निकट संबंध को दर्शाती हैं। :rand
मॉड्यूल ने पुराने :random
मॉड्यूल को प्रतिस्थापित किया, जो यादृच्छिक संख्या उत्पादन के लिए सुधारित एल्गोरिदम प्रदान करता है। यह एल्गोरिदमों की विविधता प्रदान करता है, जिसमें डिफ़ॉल्ट exsplus
है, लेकिन exs64
, exsl
, और अधिक जैसे अन्यों का समर्थन भी करता है, प्रत्येक गति और यादृच्छिकता की गुणवत्ता के संदर्भ में अपने व्यापार-ऑफ के साथ।
Elixir के (और इस प्रकार Erlang के) यादृच्छिक संख्या उत्पादन की एक दिलचस्प पहलू इसकी सीड की हैंडलिंग है। प्रणाली प्रत्येक प्रक्रिया के लिए अलग सीड स्थितियों को बनाए रखती है, यह सुनिश्चित करती है कि समकालिक प्रक्रियाएं एक-दूसरे के यादृच्छिक संख्या क्रमों में हस्तक्षेप नहीं करतीं। यह समकालिक अनुप्रयोगों में विशेष रूप से उपयोगी है, वितरित प्रणालियों में पूर्वानुमानितता और विश्वसनीयता सुनिश्चित करती है।
जबकि :rand
मॉड्यूल ज्यादातर उपयोग के मामलों के लिए पर्याप्त है, क्रिप्टोग्राफिक रूप से सुरक्षित यादृच्छिक संख्याओं की आवश्यकता वाले अनुप्रयोगों को अन्य विकल्पों पर विचार करना चाहिए। crypto
मॉड्यूल क्रिप्टोग्राफिक उद्देश्यों के लिए उपयुक्त सुरक्षित यादृच्छिक डेटा उत्पन्न करने के लिए डिजाइन किए गए कार्यों जैसे कि crypto:strong_rand_bytes/1
प्रदान करता है। ये विकल्प टोकन जनरेशन, एन्क्रिप्शन, और कुछ प्रकार के प्रमाणीकरण तंत्रों जैसे सुरक्षा-संवेदनशील अनुप्रयोगों के लिए अनिवार्य हैं।