当前位置: 首页 > article >正文

Python等比数列

文章目录

  • 等比数列
  • 等差数列
  • 斐波那契数列

等比数列

  • 公比用q表示, q ≠ 0 q\ne0 q=0
    n ∈ N ∗ n \in N^* nN
    a 1 ≠ 0 a_1\ne0 a1=0,等比数列中每一项都不等于0
  • 通项公式: a n = a 1 ⋅ q n − 1 a_n=a_1 \cdot q^{n-1} an=a1qn1
  • 等比数列求和:
    S n = n ⋅ a 1 ( q = 1 ) S_n = n \cdot a_1 (q=1) Sn=na1(q=1)
    S n = a 1 ( 1 − q n ) 1 − q ( q ≠ 1 ) S_n = \frac{a_1(1-q^n)}{1-q} (q\ne1) Sn=1qa1(1qn)(q=1)
def conditions(a1, q, n):
    assert a1 != 0
    assert q != 0
    assert isinstance(n, int)
    assert n > 0


def a_n(a1, q, n):
    conditions(a1, q, n)
    return a1 * q ** (n - 1)


def s_n(a1, q, n):
    conditions(a1, q, n)
    if q == 1:
        return n * a1
    else:
        return a1 * (1 - q ** n) / (1 - q)


if __name__ == '__main__':
    print(a_n(1, 2, 10))
    print(s_n(1, 2, 10))

等差数列

  • 公差用d表示
    n ∈ N ∗ n \in N^* nN
  • 通项公式: a n = a 1 + ( n + 1 ) ∗ d a_n = a_1 + (n+1)*d an=a1+(n+1)d
  • 等差数列求和: S n = n ⋅ a 1 + n ( n − 1 ) 2 d S_n = n \cdot a_1 + \frac{n(n-1)}{2}d Sn=na1+2n(n1)d
def a_n(a1, d, n):
    assert isinstance(n, int) and n > 0
    return a1 + (n - 1) * d


def s_n(a1, d, n):
    return (a1 + a_n(a1, d, n)) * n / 2


if __name__ == '__main__':
    print(a_n(1, 1, 10))
    print(s_n(1, 1, 10))

斐波那契数列

  • 从第3项开始,每一项都等于前两项之和:1,1,2,3,5,8,13,21,34…
  • n ∈ N ∗ n \in N^* nN
    a 1 = 1 a 2 = 1 a_1=1 \\ a_2=1 a1=1a2=1
    当 n ≥ 3 时 , a n = a n − 1 + a n − 2 当 n \ge 3 时, a_n=a_{n-1}+a_{n-2} n3,an=an1+an2
def fibonacci(n):
    assert isinstance(n, int) and n > 0
    a = 1
    b = 1
    i = 1
    while i < n:
        a, b = b, a + b
        i += 1
    return a


if __name__ == '__main__':
    for j in range(1, 10):
        print('f(%d)=%d' % (j, fibonacci(j)))

f(1)=1
f(2)=1
f(3)=2
f(4)=3
f(5)=5
f(6)=8
f(7)=13
f(8)=21
f(9)=34


http://www.kler.cn/a/104003.html

相关文章:

  • 【技能树笔记】网络篇——练习题解析(九)
  • HTML笔记-狂神
  • iai 定向 题解
  • 总结使用React做过的一些优化
  • [Unity]将所有 TGA、TIFF、PSD 和 BMP(可自定义)纹理转换为 PNG,以减小项目大小,而不会在 Unity 中造成任何质量损失
  • swagger stub https无法访问
  • React hooks介绍及使用
  • MySQL精髓:如何使用ALL一次找到最大值
  • mysql 命令行安装
  • 【人工智能Ⅰ】实验1:谓词表示法与产生式知识表示
  • vueDay04——v-if else show
  • python sqlalchemy(ORM)- 02 表关系
  • ftp远程连接传输的常见问题有哪些?如何一站式解决传输问题?
  • Redis的开发利用
  • Redis主从模式(二)---拓扑结构及复制过程
  • 【stm32】stm32MX定时器
  • 嵌入式中的MCU、ARM、DSP、FPGA
  • 20231024后端研发面经整理
  • ArcGIS笔记12_ArcGIS搜索工具没法用?ArcGIS运行很慢很卡?
  • Hadoop分布式安装