zoukankan      html  css  js  c++  java
  • numpy计算斐波那契数列

    斐波那契数列的两种方法

    Key_Function

    np.matrix函数, 创建矩阵

    rint函数, 对浮点数取整, 但不改变浮点数类型

    Code

    import numpy as np
    
    # 第一种方法
    F = np.matrix([[1, 1], [1, 0]])
    print(F)
    '''
    [[1 1]
     [1 0]]
    '''
    print((F ** 7)[0, 0])
    # 21
    print((F ** 2))
    '''
    [[2 1]
     [1 1]]
    '''
    print((F ** 3))
    '''
    [[3 2]
     [2 1]]
    '''
    print((F ** 4))
    '''
    [[5 3]
     [3 2]]
    '''
    
    # 第二种方法
    # 利用黄金分割公式(比奈公式), 加上取整函数, 计算斐波那契数列
    n = np.arange(1, 9)
    print(n)
    # [1 2 3 4 5 6 7 8]
    sqrt5 = np.sqrt(5)  # 取开方
    print(sqrt5)
    # 2.2360679775
    phi = (1 + sqrt5) / 2   # 计算黄金分割率
    print(phi)
    # 1.61803398875
    fibonacci = np.rint((phi**n - (-1/phi)**n)/sqrt5)   # rint函数, 对浮点数取整, 但不改变浮点数类型
    
    print(fibonacci)
    # [  1.   1.   2.   3.   5.   8.  13.  21.]

    斐波那契数列的通项公式

    通项公式

    斐波那契数列与黄金分割率

    斐波那契数列,这样一个完全是自然数的数列,通项公式却是用无理数来表达的。而且当n趋向于无穷大时,前一项与后一项的比值越来越逼近黄金分割0.618(或者说后一项与前一项的比值小数部分越来越逼近0.618)。
    1÷1=1,1÷2=0.5,2÷3=0.666...,3÷5=0.6,5÷8=0.625…………,55÷89=0.617977……………144÷233=0.618025…46368÷75025=0.6180339886…...
    越到后面,这些比值越接近黄金比.

    证明

    两边同时除以
    得到:
    的极限存在,设其极限为x,
    所以
    由于
    解得
    所以极限是黄金分割比。
  • 相关阅读:
    20201112 装饰器之函数即变量
    2月13日:毕业设计进度
    2月12日:毕业设计进度
    2月11日:毕业设计进度
    2月10日:毕业设计进度
    2月9日:毕业设计进度
    2月8日:毕业设计进度
    2月7日:毕业设计进度
    2月6日:毕业设计进度
    2月5日:毕业设计进度
  • 原文地址:https://www.cnblogs.com/draven123/p/11397614.html
Copyright © 2011-2022 走看看