编程中经常会用到的一些数学知识和公式。
斐波那契数列
斐波那契数列,又称黄金分割数列,因数学家Leonardoda Fibonacci以兔子繁殖为例而引入,故又称兔子数列。在数学上,斐波那契数列被以如下递归的方法定义:F(0) = 0, F(1) = 1, F(n) = F(n-1) + F(n-2) (n>=2, n∈N*),这个数列从第三项开始,每一项是前两项的和。1
1, 1, 2, 3, 5, 8 ...
等比数列求和
一个数列,如果任意一项与前一项的比值是一个常数,用q来代表这个常数,且任一项不为0,即A(n)/A(n-1)=q(n为自然数),这个数列叫等比数列,其中常数q叫公比。
通项公式:
an = a1 * q(n-1);
求和公式:
Sn = a1 n (q=1)
Sn = a1 (qn-1)/(q-1) (q != 1)
求和推导:
(1)Sn=a1+a2+a3+…+an (公比为q)
(2)qSn=a1q + a2q + a3q +…+ anq = a2+ a3+ a4+…+ an+ a(n+1)
(3)Sn-qSn=(1-q)Sn=a1-a(n+1)
(4)a(n+1)=a1qn
(5)Sn=a1(1-qn)/(1-q)(q≠1)
等差数列求和
一个数列,从第二项开始,每一项与前一项的差等于同一个常数,那么这个数列叫等差数列。
通项公式:
an = a1 + (n-1)d;
求和公式:
Sn = (a1 + an) * n / 2;
推导过程:
Sn = a1 + … + an
Sn = n a1 + ( 0 + 1 + 2 … + (n-1) ) d
Sn = n a1 + n (n-1) d / 2
Sn = (n a1 + n a1 + n (n-1) d) /2
Sn = n (a1 + an) / 2