我正在学习 itertools 并试图测试在 python 中实现的 Binet 公式的准确性。使用 itertools 的原因是我假设这将需要大量迭代,并且只有在大量迭代后才会出现差异。from math import sqrtimport itertools#fibonacci function 2def fib1(): n = -1 while True: n += 1 yield int(((1+sqrt(5))**n-(1-sqrt(5))**n)/(2**n*sqrt(5)))#fibonacci function 1def fib2(): a,b = 0,1 while True: yield a a, b = b, a + br=itertools.dropwhile(lambda x: x[0]==x[1],itertools.zip_longest(fib1(),fib2()))for item in itertools.islice(r,0,1): print(item)输出:(498454011879265, 498454011879264)在使用之前int()我使用round()过fib1(),结果是(308061521170130, 308061521170129)可以做些什么来提高我的比奈公式实现的准确性?
添加回答
举报
0/150
提交
取消