zoukankan      html  css  js  c++  java
  • 斐波那契数 整理


    内容主要来(chao)自《具体数学(第二版)》。

    背景:
    看了几节课《具体数学》,记一下吧不然就真废了。。
    应该没什么用,不过混个眼熟吧说不定还能见到Fibonacci的题。。写些这个我也是挺闲的。

    咕了→_→工程量太浩大

    斯特林数 STIRLING NUMBERS

    第二类斯特林数

      我们用(left{^n_k ight})记第二类斯特林数。
      
      
      
      

    第一类斯特林数

      我们用(left[^n_k ight])记第一类斯特林数。
      
      
      

    斐波那契数 FIBONACCI NUMBERS

    1.卡西尼恒等式

      $$F_{n+1}F_{n-1}-F_n^2=(-1)^n,n>0 ag{1}$$
      一个包含了形如(f_{npm k})(对于(k)的较小值)的斐波那契数的多项式公式可以变换成一个只包含(F_n)(F_{n+1})的公式,因为我们可以通过法则$$F_m=F_{m+2}-F_{m+1} ag{2}$$来用更高次的斐波那契数表示(F_m)(当(m<n)时),且可以通过$$F_m=F_{m-2}+F_{m-1} ag{3}$$来用较低次的斐波那契数代替(F_m)(当(m>n+1)时)。
      例如,替换卡西尼恒等式中的某个(F),从而得到形如:$$F_{n+1}^2-F_{n+1}F_n-F_n^2=(-1)^n ag{4}$$$$F_{n+2}F_n-F_{n+1}^2=(-1)^{n+1} ag{5}$$的卡西尼恒等式。
      而((5))((F_{n+1}+F_n)F_n-F_{n+1}^2=(-1)^{n+1})是相同的,而后者与((4))相同。因此当卡西尼((n))为真当且仅当卡西尼((n+1))为真,于是根据归纳法,方程((1))对所有(n)成立。
      严格地说,除非(mgeq2),否则不能应用化简公式((3)),因为我们没有对取负值的(n)定义过(F_n)。如果我们消除掉这个边界条件并利用((2)(3))对负指标定义斐波那契数,那么许多问题的处理就会变得更加容易。如(F_{-1}=F_1-F_0=1,F_{-2}=F_0-F_{-1}=-1)。且由归纳法有$$F_{-n}=(-1)^{n-1}F_n,n是整数 ag{6}$$
      当用这种方式推广斐波那契数列时,卡西尼恒等式((1))对所有整数(n)都成立,而不仅仅对(n>0)成立。
      利用((2)(3))及归纳法还可以得出,$$F_{n+k}=F_kF_{n+1}+F_{k-1}F_n ag{7}$$它对于所有整数(k)(n)(正负以及0)都成立。
      如果在((7))中取(k=n),就有$$F_{2n}=F_nF_{n+1}+F_{n-1}F_n ag{8}$$从而(F_{2n})(F_n)的倍数。类似地有$$F_{3n}=F_{2n}F_{n+1}+F_{2n-1}F_n$$而且我们可以断言,(F_{3n})也是(F_n)的倍数。

    2.斐波那契表示法

      斐波那契数的一个最重要的性质是它们可以给出一种表示整数的特别方法。我们记$$jgg kLeftrightarrow jgeq k+2 ag{9}$$
      那么每个正整数都有唯一的表示形式$$n=F_{k_1}+F_{k_2}+cdots+F_{k_r},k_1gg k_2gg cdotsgg k_rgg 0$$
      这是(Zeckendorf)定理。如100万的表示:$$egin{aligned}1 000 000&=832 040+121 393+46 368+144+55 &= F_{30} + F_{26} + F_{24} +F_{12} +F_{10}end{aligned}$$
      每次选取(F_{k_1})(leq n)的最大的斐波那契数,然后选取(F_{k_2})(leq n-F_{k_1})的最大的斐波那契数,这样一直下去总可以得到这样的表达式。
      任何有唯一性的表示系统都是一个数系,这样(Zeckendor)定理就引导出斐波那契数系。我们可以将任何非负整数(n)(0)(1)的一个序列表示,记$$n=(b_mb_{m-1}ldots b_2)FLeftrightarrow n=sum{k=2}^nb_kF_k$$
      这个数系有点像二进制记号,除了这里从来不会出现两个连续的1以外。几个例子:$$egin{aligned} 1=(000001)_F && 4=(000101)_F && 12=(010101)_F && 13=(100000)Fend{aligned}$$
      前面的100万斐波那契表示可以与它的二进制表示(2^{19}+2^{18}+2^{17}+2^{16}+2^{14}+2^{9}+2^{6})作比较:$$egin{aligned}(1 000 000)
    {10}&=(10 001 010 000 000 000 010 100 000 000)_F&=(11 110 100 001 001 000 000)_2end{aligned}$$
      斐波那契表示法需要更多的位数,因为不允许有接连出现的1,但是这两个表示是类似的。
      加1进位有两种情形,可能要进位2次(保证没有相邻的1),我懒得写了。。

    3.另一个公式

      $$gcd(F_m,F_n)=F_{gcd(m,n)} ag{10}$$

  • 相关阅读:
    织梦插件开发
    yiic使用笔记
    yii2.0学习及变化比较(一)
    yii框架设计学习笔记(一)
    Maven生成可以直接运行的jar包的多种方式(转)
    Linux下查看CPU型号,内存大小,硬盘空间的命令(详解)
    从Google Earth 中下载三维模型
    Hadoop安装所遇问题及解决方法
    智慧家居体系结构
    .Net 数据库(SqlServer2008)的备份、还原
  • 原文地址:https://www.cnblogs.com/SovietPower/p/9191803.html
Copyright © 2011-2022 走看看