परिचय
आपको निम्नलिखित कार्यान्वयन के साथ एक यादृच्छिक पूर्णांक जनरेटर दिया जाता है
- पहला आह्वान हमेशा 1 देता है।
- दूसरा आह्वान 1 और 2 के बीच एक यादृच्छिक पूर्णांक देता है।
- तीसरा आह्वान 1 और 3 के बीच एक यादृच्छिक पूर्णांक देता है।
- Nth मंगलाचरण 1 और n, समावेशी के बीच एक यादृच्छिक पूर्णांक देता है।
उपरोक्त फ़ंक्शन के आधार पर, एक यादृच्छिक पासा जनरेटर लिखें जो पूरी तरह से यादृच्छिक है, समान संभावना के साथ 1 और 6 (समावेशी) के बीच मान लौटाता है।
नियम
- आपके प्रोग्राम / फ़ंक्शन का परिणाम रैंडम पूर्णांक 1 और 6 के बीच होना चाहिए, समावेशी, कुछ प्रयोग करने योग्य रूप में, अर्थात, मानक आउटपुट या फ़ंक्शन रिटर्न मान के रूप में।
- ऊपर बढ़ते यादृच्छिक संख्या जनरेटर को आपके कार्यक्रम में "नि: शुल्क" फ़ंक्शन के रूप में परिभाषित किया जा सकता है (यानी, आपके चरित्र की गणना नहीं करता है), या एक अलग स्क्रिप्ट / प्रोग्राम जिसे आवश्यकतानुसार निष्पादित किया जाता है, राज्य (
n
) को लगातार बना रहा है कॉल के बीच। - मान लें कि आपके कार्यक्रम के एकल उपयोग के मामले में कभी भी 1000 से अधिक पासा रोल नहीं मांगे जाएंगे, और
1
अतिप्रवाह से बचने के लिए प्रारंभिक यादृच्छिक संख्या जनरेटर को 1000 पासा रोल के अंत में रीसेट किया जा सकता हैn
। - आपका प्रोग्राम ऊपर बताए गए यादृच्छिक जनरेटर को छोड़कर यादृच्छिक संख्याओं के किसी अन्य स्रोत का उपयोग नहीं कर सकता है। आप निश्चित रूप से प्रत्येक एकल पासा रोल आउटपुट के लिए यादृच्छिक संख्या जनरेटर से कई यादृच्छिक संख्याओं का अनुरोध कर सकते हैं।
- यह कोड-गोल्फ है, इसलिए टाई होने की स्थिति में विजेता सबसे छोटा जवाब या अधिकांश वोट होता है। यदि आप 1000 से कम उत्पन्न यादृच्छिक संख्याओं का उपयोग करके 1000 पासा रोल उत्पन्न कर सकते हैं, तो अपने आप को 10-बिंदु दक्षता बोनस दें ।
उदाहरण
./asc-rand
1 # random integer between 1 and 1
./asc-rand
1 # random integer between 1 and 2
./asc-rand
3 # random integer between 1 and 3
./asc-rand
4 # random integer between 1 and 4
# dice-gen generates random dice based on output of asc-rand program.
./dice-gen
3
./dice-gen
6
./dice-gen
5
./dice-gen
1
iterate(6):b=asc-rand(); print b
अवैध है या यह काम नहीं करता है? मैं तीसरे नियम को गलत समझ सकता हूं।