लक्ष्य
एक प्रोग्राम / फ़ंक्शन बनाएं जो एक इनपुट लेता है N
, यह जांचें कि क्या N
पूर्णांकों के यादृच्छिक जोड़े अपेक्षाकृत प्रमुख हैं, और रिटर्न sqrt(6 * N / #coprime)
।
टी एल; डॉ
ये चुनौतियां एल्गोरिदम का अनुकरण हैं जो केवल प्रकृति और आपके मस्तिष्क (और शायद कुछ फिर से उपयोग करने योग्य संसाधनों) को लगभग अनुमानित पीआई की आवश्यकता होती है। यदि आप वास्तव में ज़ोंबी सर्वनाश के दौरान पाई की जरूरत है, इन तरीकों बारूद बर्बाद नहीं है ! अभी आठ और चुनौतियां हैं। सिफारिशें करने के लिए सैंडबॉक्स पोस्ट को चेकआउट करें ।
सिमुलेशन
हम क्या अनुकरण कर रहे हैं? खैर, संभावना है कि दो यादृच्छिक पूर्णांक अपेक्षाकृत प्राइम हैं (यानी कॉप्रेम या जीसीडी == 1) 6/Pi/Pi
, इसलिए पाई की गणना करने का एक प्राकृतिक तरीका दो बाल्टी (या मुट्ठी भर) चट्टानों को स्कूप करना होगा; उन्हें गिनो; देखें कि क्या उनकी gcd 1 है; दोहराएँ। एक दो बार ऐसा करने के बाद , sqrt(6.0 * total / num_coprimes)
ओर रुख करेंगे Pi
। यदि एपोकॉलिक दुनिया में वर्गमूल की गणना आपको परेशान करती है, तो चिंता न करें! उसके लिए न्यूटन की विधि है।
हम इसका अनुकरण कैसे कर रहे हैं?
- इनपुट लें
N
- निम्न
N
बार करें:- समान रूप से यादृच्छिक सकारात्मक पूर्णांक उत्पन्न करते हैं,
i
औरj
- साथ में
1 <= i , j <= 10^6
- यदि
gcd(i , j) == 1
:result = 1
- अन्य:
result = 0
- समान रूप से यादृच्छिक सकारात्मक पूर्णांक उत्पन्न करते हैं,
N
परिणाम का योग लें ,S
- वापसी
sqrt(6 * N / S)
विशिष्टता
- इनपुट
- लचीले, किसी भी मानक तरीके (जैसे फ़ंक्शन पैरामीटर, एसटीडीआईएन) और किसी भी मानक प्रारूप (जैसे स्ट्रिंग, बाइनरी) में इनपुट लें
- उत्पादन
- लचीले, किसी भी मानक तरीके से आउटपुट दें (जैसे रिटर्न, प्रिंट)
- श्वेत स्थान, अनुगामी और प्रमुख श्वेत स्थान स्वीकार्य है
- सटीकता, कृपया सटीकता के कम से कम 4 दशमलव स्थान प्रदान करें (अर्थात
3.1416
)
- स्कोरिंग
- सबसे छोटा कोड जीतता है!
परीक्षण के मामलों
रैंडम चांस के कारण आपका आउटपुट इनसे ऊपर नहीं जा सकता है। लेकिन औसतन, आपको दिए गए मूल्य के लिए इस सटीकता के बारे में जानना चाहिए N
।
Input -> Output
----- ------
100 -> 3.????
10000 -> 3.1???
1000000 -> 3.14??
N=10^6
।
N = 1000000
या क्या यह ठीक है अगर कार्यक्रम वापस आ जाता है जैसे एक स्टैक अतिप्रवाह यदिN
बहुत बड़ा है?