मैं (क) एक रेखीय दृष्टिकोण का उपयोग वें फिबोनैकी संख्या की गणना कर रहा हूँ में सूत्रों का उपयोग वें फिबोनैकी संख्या की गणना, और (ख) this अभिव्यक्तिअजगर
अजगर कोड:
'Different implementations for computing the n-th fibonacci number'
def lfib(n):
'Find the n-th fibonacci number iteratively'
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a
def efib(n):
'Compute the n-th fibonacci number using the formulae'
from math import sqrt, floor
x = (1 + sqrt(5))/2
return long(floor((x**n)/sqrt(5) + 0.5))
if __name__ == '__main__':
for i in range(60,80):
if lfib(i) != efib(i):
print i, "lfib:", lfib(i)
print " efib:", efib(i)
एन> 71 के लिए मैं देखता हूं कि दो कार्य अलग-अलग मान लौटाते हैं।
क्या यह efib() में शामिल फ्लोटिंग पॉइंट अंकगणित के कारण है? यदि हां, तो क्या matrix form का उपयोग कर संख्या की गणना करने के लिए सलाह दी जाती है?
'.append' साथ स्मृति में एक सूची का निर्माण करने की आवश्यकता नहीं है। आप केवल दो चर का उपयोग कर सकते हैं - ओपी से 'lfib' की परिभाषा देखें। – peterhurford