首页 > 数据库 > Oracle > 用SQL写斐波那契数列
斐波那契数列 ?
斐波那契数列(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/ ,如需转载,请注明出处,否则将追究法律责任。