पृष्ठभूमि:
Pi ( π
) एक ट्रान्सेंडैंटल संख्या है , और इसलिए इसमें एक गैर-समाप्ति दशमलव प्रतिनिधित्व है। इसी तरह, प्रतिनिधित्व किसी अन्य पूर्णांक आधार में लिखे जाने पर समाप्त नहीं होता है। लेकिन क्या होगा अगर हमने इसे आधार में लिखा है π
?
दशमलव में अंक 10 की शक्तियों का प्रतिनिधित्व करते हैं, इसलिए:
π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + …
इसलिए आधार में π
, अंक π
निम्न शक्तियों का प्रतिनिधित्व करेंगे :
π = 10 = (1 * π^1) + (0 * π^0)
इस नए आधार में, पूर्णांकों में अब गैर-समाप्ति निरूपण है। तो दशमलव में 10 अब निम्नलिखित हो गया है:
10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 * π^-1) + (1 * π^-2) + …
ध्यान दें कि आधार π
में उपयोग किए गए अंक 0,1,2,3 हैं क्योंकि ये अंकों से कम हैं π
।
चुनौती:
एक गैर-नकारात्मक पूर्णांक को देखते हुए x
, या तो:
आउटपुट (बिना रुके) आधार में इसका प्रतिनिधित्व करता है
π
। यदि संख्या में परिमित प्रतिनिधित्व (0, 1, 2, 3) है, तो प्रोग्राम अनंत शून्य को मुद्रित करने के बजाय रुक सकता है।मनमाने ढंग से बड़े पूर्णांक लें
n
, और आधार में पहलेn
अंकों का उत्पादन करें ।x
π
नियम:
- चूंकि एक संख्या में कई संभावित प्रतिनिधित्व होते हैं, इसलिए आपको सबसे बड़े (सामान्यीकृत) प्रतीत होने वाले आउटपुट का उत्पादन करना होगा । जैसे
1.0 = 0.9999…
दशमलव में, यह समस्या इस आधार में भी मौजूद है। आधार मेंπ
, एक अभी भी है1.0
, लेकिन0.3011…
उदाहरण के लिए भी लिखा जा सकता है । इसी तरह, दस है100.01022…
, लेकिन30.121…
या के रूप में भी लिखा जा सकता है23.202…
। - यह कोड-गोल्फ है, इसलिए सबसे कम बाइट जीतती है। कार्यक्रम या समारोह।
- कोई बिल्ट-इन ( मैं आपको देख रहा हूँ , गणितज्ञ )
परिणाम:
0 = 0
1 = 1
2 = 2
3 = 3
4 = 10.220122021121110301000010110010010230011111021101…
5 = 11.220122021121110301000010110010010230011111021101…
6 = 12.220122021121110301000010110010010230011111021101…
7 = 20.202112002100000030020121222100030110023011000212…
8 = 21.202112002100000030020121222100030110023011000212…
9 = 22.202112002100000030020121222100030110023011000212…
10 = 100.01022122221121122001111210201201022120211001112…
42 = 1101.0102020121020101001210220211111200202102010100…
1337 = 1102021.0222210102022212121030030010230102200221212…
9999 = 100120030.02001010222211020202010210021200221221010…
बेस पाई में दस के पहले 10,000 अंक
सत्यापन:
आप यहां पर किसी भी आउटपुट को सत्यापित कर सकते हैं, जिसे आप Mathematica कोड का उपयोग करना चाहते हैं । पहला पैरामीटर है x
, तीसरा है n
। यदि यह समय समाप्त हो जाता है, तो एक छोटा चुनें n
और इसे चलाएं। फिर कार्यक्रम के साथ एक नया गणित कार्यपत्रक खोलने के लिए "कोड इन ओपन" पर क्लिक करें। वहां कोई समय सीमा नहीं है।
परिणामी आउटपुट को यहां संख्या में परिवर्तित करें ।
सम्बंधित:
n
, मुझे लगता है कि पाई में कम से कम n
सटीकता के अंक होने चाहिए ।