📜  莱昂纳多数(1)

📅  最后修改于: 2023-12-03 14:57:12.294000             🧑  作者: Mango

莱昂纳多数

莱昂纳多数(Leonardo number),又称黄金比例数列(golden ratio sequence),是指以下数列:

1, 1, 3, 5, 9, 14, 23, 37, 61, 98, ...

它的通项公式为Ln = Ln-1 + Ln-2 + 1,其中L0 = 1,L1 = 1。

特性

莱昂纳多数具有以下特性:

  1. 每个莱昂纳多数都是它前面两个莱昂纳多数的和再加1。
  2. 每个莱昂纳多数都比它前面第一个莱昂纳多数大,但比它前面第二个莱昂纳多数小。
  3. 相邻两个莱昂纳多数的比值接近黄金比例1.618。
  4. 莱昂纳多数可以用于模拟自然界中的一些现象,例如植物的分支、贝壳的螺旋等等。
应用举例
Fibonacci螺旋

Fibonacci螺旋是一个以Fibonacci数列为基础的螺旋。而莱昂纳多数列是Fibonacci数列的一种变形,因此它也可以用于绘制Fibonacci螺旋。

import turtle

def fibonacci_spiral(n):
    a, b = 0, 1
    turtle.penup()
    turtle.goto(0, 0)
    turtle.pendown()
    for i in range(n):
        turtle.forward(b * 4)
        turtle.left(90)
        temp = a + b
        a = b
        b = temp
        
fibonacci_spiral(10)
turtle.done()

效果图如下:

Fibonacci螺旋

分形树

分形树是一种以分形为基础的图形,它可以用莱昂纳多数列来实现。

import turtle

def tree(n, size):
    if n == 0:
        return
    turtle.forward(size * n)
    turtle.left(45)
    tree(n - 1, size)
    turtle.right(90)
    tree(n - 1, size)
    turtle.left(45)
    turtle.backward(size * n)
    
turtle.penup()
turtle.goto(0, -200)
turtle.pendown()
tree(10, 5)
turtle.done()

效果图如下:

分形树

以上就是莱昂纳多数的一些特性和应用举例。