ITPub博客

首页 > 数据库 > Oracle > 用SQL写斐波那契数列

用SQL写斐波那契数列

原创 Oracle 作者:peter1166 时间:2016-03-22 16:13:08 0 删除 编辑



斐波那契数列 ?

斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1]  )
以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,
斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)


定义

斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368

特别指出:第0项是0,第1项是第一个1。
这个数列从第2项开始,每一项都等于前两项之和


-------------------------------------------------------------------------------------------------------------------------


SELECT * FROM DUAL
MODEL
DIMENSION BY (0 X)
MEASURES(0 N)
RULES (
 N[0] = 0
,N[1] = 1
,N[FOR X FROM 2 TO 10 INCREMENT 1] = N[CV()-1] +  N[CV()-2]
)
;
         X          N
---------- ----------
         0          0
         1          1
         2          1
         3          2
         4          3
         5          5
         6          8
         7         13
         8         21
         9         34
        10         55
11 rows selected


WITH T(A,B,C) AS (
SELECT 1,0,1 FROM DUAL
UNION ALL
SELECT T.A+1,T.C,T.B+T.C
FROM T
WHERE T.A<11
)
SELECT B FROM T
;

         B
----------
         0
         1
         1
         2
         3
         5
         8
        13
        21
        34
        55
11 rows selected



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/13696961/viewspace-2061854/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2015-06-26

  • 博文量
    10
  • 访问量
    14396