in_range = int(input("range: "))
fibo_list = []
a = 0
b = 1
count = 0
if in_range < 0:
print("faulty")
elif in_range == 0:
print("faulty")
else:
while count < in_range:
c = a + b
a = b
b = c
count += 1
fibo_list.append(a)
print(fibo_list)
在此代码范围内输入1000时,会创建许多椭圆形状,其中有些很难看到。这似乎只发生在斐波那契数列上,而没有其他长数链。为什么是这样?
最佳答案
数字之间的空格的“形状”只是一种将数字与宽度(或宽度的倍数)接近终端宽度对齐,同时缓慢增加数字位数的假象。斐波那契数列恰好以大致正确的速度增加数字位数,以看到“椭圆模式”出现,但是以相似的速率增加位数的任何模式都将看到这种模式。可能不在同一位置,可能曲线稍微平缓或陡峭,但相似。
举一个简单的例子,将1.5
的截断幂从300打印到600将产生非常相似的模式:
print([int(1.5 ** i) for i in range(300, 600)])
关于python - 为什么很大的斐波那契数会产生椭圆形的形状?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59149206/