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时,会创建许多椭圆形状,其中有些很难看到。这似乎只发生在斐波那契数列上,而没有其他长数链。为什么是这样? python - 为什么很大的斐波那契数会产生椭圆形的形状?-LMLPHP

最佳答案

数字之间的空格的“形状”只是一种将数字与宽度(或宽度的倍数)接近终端宽度对齐,同时缓慢增加数字位数的假象。斐波那契数列恰好以大致正确的速度增加数字位数,以看到“椭圆模式”出现,但是以相似的速率增加位数的任何模式都将看到这种模式。可能不在同一位置,可能曲线稍微平缓或陡峭,但相似。

举一个简单的例子,将1.5的截断幂从300打印到600将产生非常相似的模式:

print([int(1.5 ** i) for i in range(300, 600)])

python - 为什么很大的斐波那契数会产生椭圆形的形状?-LMLPHP

关于python - 为什么很大的斐波那契数会产生椭圆形的形状?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59149206/

10-11 19:09