फाइबोनैचि परिशुद्धता के साथ फी की शक्तियां प्रदर्शित करें


9

कुछ कोड लिखें जो एक एकल गैर-नकारात्मक पूर्णांक n लेता है और Phi (ϕ, गोल्डन अनुपात, लगभग 1.61803398874989) की nth शक्ति को दशमलव संख्या के समान संख्या के साथ nth फाइबोनैचि संख्या के रूप में आउटपुट करता है ।

आपके कोड में कम से कम 10 (55 दशमलव अंक) तक के सभी इनपुट के लिए अंकों का सही क्रम होना चाहिए। आउटपुट मानव-पठनीय दशमलव होना चाहिए। आप यह चुन सकते हैं कि अंतिम अंक को निकटतम मान पर गोल करें, या मान को छोटा करें। कृपया निर्दिष्ट करें कि आपका कौन सा कोड उपयोग करता है।

n और आउटपुट, 10 तक, नीचे गोल:

 0   1
 1   1.6
 2   2.6
 3   4.23
 4   6.854
 5  11.09016
 6  17.94427190
 7  29.0344418537486
 8  46.978713763747791812296
 9  76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174

n और आउटपुट, 10 तक, निकटतम मूल्य के लिए गोलाई:

 0   1
 1   1.6
 2   2.6
 3   4.24
 4   6.854
 5  11.09017
 6  17.94427191
 7  29.0344418537486
 8  46.978713763747791812296
 9  76.0131556174964248389559523684316960
10 122.9918693812442166512522758901100964746170048893169574174

7 वीं फाइबोनैचि संख्या 13 है, इसलिए n = 7 , has 7 के लिए आउटपुट में 13 दशमलव स्थान हैं। आपको अनुगामी शून्य को कम नहीं करना चाहिए जो बहुत कम अंक प्रदर्शित करेगा; पहली तालिका में 6 के लिए आउटपुट देखें, जो दशमलव अंकों को 8 अंकों पर रखने के लिए एक शून्य में समाप्त होता है।

हो सकता है कि बोनस के रूप में, यह कहें कि आपका प्रोग्राम उच्चतम संख्या को सही ढंग से आउटपुट कर सकता है।


उन भाषाओं के बारे में क्या जो कई दशमलव स्थानों को संभाल नहीं सकती हैं? मुझे यहां एक 24 बाइट का पायथ घोल मिला, जो केवल n = 7 तक काम करता है, क्योंकि मैं 15 से अधिक दशमलव स्थानों को प्रदर्शित नहीं कर सकता। मैं इसे वैसे भी पोस्ट करना चाहिए?
Denker

@DenkerAffe ज़रूर, आप इसे पोस्ट कर सकते हैं लेकिन एक नोट के साथ कह सकते हैं कि यह मान्य नहीं है क्योंकि यह पिछले तीन परीक्षण मामलों को नहीं कर सकता है। यह आपके उत्तर के लिए किसी को सटीक जोड़ने के लिए प्रेरणा हो सकती है!
सीजे डेनिस

जवाबों:


3

डीसी, 26 बाइट्स

99k5v1+2/?^d5v/.5+0k1/k1/p

कॉमा के बाद 99 अंकों की प्रारंभिक परिशुद्धता के कारण, यह यो इनपुट 11 पर काम करेगा । एक गतिशील (या उच्च स्थैतिक) परिशुद्धता संभव है, लेकिन बाइट गिनती को बढ़ाएगा।

परीक्षण के मामलों

$ for ((i = 0; i < 11; i++)) { dc -e '99k5v1+2/?^d5v/.5+0k1/k1/p' <<< $i; }
1
1.6
2.6
4.23
6.854
11.09016
17.94427190
29.0344418537486
46.978713763747791812296
76.0131556174964248389559523684316960
122.9918693812442166512522758901100964746170048893169574174

यह काम किस प्रकार करता है

के बाद से वांछित आउटपुट है φ n , हम फिबोनैकी संख्या की गणना कर सकते F (n) के रूप में ⌊φ n ÷ √5 + 0.5⌋ थोड़ा अतिरिक्त प्रयास के साथ।

99k                         Set the precision to 99.
   5v                       Compute the square root of 5.
     1+                     Add 1.
       2/                   Divide by 2.
                            This pushes the golden ratio.
         ?                  Read the input from STDIN.
          ^                 Elevate the golden ratio to that power.
           d                Push a copy.
            5v/             Divide it by the square root of 5.
               .5+          Add 0.5.
                  0k        Set the precision to 0.
                    1/      Divide by 1, truncating to the desired precision.
                            This pushes F(n).
                      k     Set the precision to F(n).
                       1/   Divide by 1, truncating to the desired precision.
                         p  Print.

0

गणितज्ञ, 50 बाइट्स

N[GoldenRatio^#,2^#]~NumberForm~{2^#,Fibonacci@#}&

मूल समाधान। निकटतम मूल्य के लिए सीमा। फिर भी उच्चतम मूल्य की पुष्टि करना जो मेरे कंप्यूटर को मेमोरी से बाहर नहीं चलाएगा। इनपुट 32काम करता है, लेकिन इसमें 45 मिनट लगते हैं और 16GiB रैम का उपयोग होता है। हालाँकि, अनंत समय और स्मृति को देखते हुए, यह सैद्धांतिक रूप से किसी भी मूल्य के लिए चल सकता है।


1
क्या आप कृपया आउटपुट पोस्ट करेंगे? मुझे पिछले कुछ परीक्षण मामलों को जोड़ने के लिए अपने आउटपुट को धोखा देने और उपयोग करने की आवश्यकता है। आप कौन सा रास्ता गोल कर रहे हैं? नीचे या निकटतम? "अनंत संसाधन" पर्याप्त अच्छे हैं। मुझे आवश्यकता नहीं है कि आप स्मृति से बाहर चलें!
सीजे डेनिस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.