कार्य
आपके द्वारा चुने गए किसी भी तरह से इनपुट के रूप में निर्दिष्ट n
से कम एक सकारात्मक पूर्णांक को देखते हुए 2^30
, आपके कोड को 0
और n
, के बीच एक यादृच्छिक पूर्णांक का उत्पादन करना चाहिए । आपके द्वारा उत्पन्न संख्या को यादृच्छिक रूप से समान रूप से चुना जाना चाहिए । यही कारण है कि से प्रत्येक मान है 0
करने के लिए n
(नियम और चेतावनियां देखें) बराबर संभावना के साथ आना चाहिए।
नियम और कैविएट
आपका कोड मान सकता है कि आपकी भाषा या मानक पुस्तकालय में निर्मित कोई भी यादृच्छिक संख्या जनरेटर जो समान रूप से यादृच्छिक होने का दावा करता है, वास्तव में समान है। यही कारण है कि आप उस यादृच्छिक स्रोत की गुणवत्ता के बारे में चिंता करने की ज़रूरत नहीं है जिसका आप उपयोग कर रहे हैं। तथापि,
- आपको यह स्थापित करना होगा कि यदि आप जिस यादृच्छिक स्रोत का उपयोग कर रहे हैं वह एक समान है तो आपका कोड सही रूप से एक समान यादृच्छिक पूर्णांक को आउटपुट करता
0
हैn
। - अंतर्निहित या लाइब्रेरी रैंडम फ़ंक्शन को कॉल करते समय कोई भी तर्क निरंतर होना चाहिए। यही है कि वे पूरी तरह से इनपुट मूल्य से स्वतंत्र होना चाहिए।
- आपका कोड समाप्त होने की गारंटी के बजाय संभावना 1 के साथ समाप्त हो सकता है ।
टिप्पणियाँ
randInt(0,n)
यह मान्य नहीं है क्योंकि यह इनपुट को एक बेसिन या लाइब्रेरी फ़ंक्शन के तर्क के रूप में लेता है।rand()%n
होगा नहीं सामान्य रूप में एक समान यादृच्छिक संख्या दे। Betseg द्वारा दिए गए उदाहरण के लिए, अगरintmax == 15
औरn = 10
है, तो आप और अधिक प्राप्त होने की संभावना हो जाएगा0-5
की तुलना में6-10
।floor(randomfloat()*(n+1))
0 और 1 के बीच विभिन्न संभावित फ्लोटिंग पॉइंट मानों की परिमित संख्या के कारण सामान्य रूप से एक समान यादृच्छिक संख्या नहीं देगा।
rng()
प्रदान करता है0
-100
, यदिn = 75
, और फ़ंक्शन हैrng()%75
, तो 0-25 अधिक सामान्य होगा ...)