2015年6月29日月曜日

フィボナッチ数列手順

Original post: http://anothermysqldba.blogspot.com/2015/06/fibonacci-sequence-procedure.html

 私は、そのことについて申し訳ありません掲示ので、まあそれはしばらくしています。 今日、私はテレビ番組のフリンジの再放送を見ていたウォルターは、フィボナッチ数列を参照するとき、私は、このためのMySQLオプションを使用して追跡側を得ました。 

今、この投稿はすでに存在していました: 

だから私は少しそのポストを取って、その上に展開、結果はあなたが後にしているフィボナッチ数列範囲を呼び出し、返すことができプロシージャです。 

手順は以下の通りです: 

delimiter // 
CREATE PROCEDURE `Fibonacci`(IN POS INT, IN RANG INT, IN LIMTED INT) 
BEGIN 
select FORMAT(Fibonacci,0) AS Fibonacci from ( 
select @f0 Fibonacci, @fn:=@f1+@f0, @f0:=@f1, @f1:=@fn 
from (select @f0:=0, @f1:=1, @fn:=1) x, 
information_schema.STATISTICS p limit LIMTED) y LIMIT POS, RANG; 
END// 
delimiter ; 


あなたはこれを呼び出して、あなたが後にしている範囲でどのような値と渡すことができます。 

だから、配列および次の値で5番目の値(0から始まる  したい場合 

> CALL Fibonacci(5,2,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 5 | 
| 8 | 
+-----------+ 


あなたは30日の値をたいのであればシーケンスと次の値(0から始まります  

> CALL Fibonacci(30,2,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 832,040 | 
| 1,346,269 | 
+-----------+ 


だから、配列および次の値に(0から始まる )150番目の値が必要な場合 

> CALL Fibonacci(150,2,1000); 
+--------------------------------------------+ 
| Fibonacci | 
+--------------------------------------------+ 
| 9,969,216,677,189,305,000,000,000,000,000 | 
| 16,130,531,424,904,583,000,000,000,000,000 | 
+--------------------------------------------+ 


だから、あなたのアイデアを得ます。 あなたは2だけのプロシージャ·コールの2番目の値を変更する以上のことをしたい場合今、あなたはまた、結果の範囲を拡大することができます。 

> CALL Fibonacci(0,10,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 0 | 
| 1 | 
| 1 | 
| 2 | 
| 3 | 
| 5 | 
| 8 | 
| 13 | 
| 21 | 
| 34 | 
+-----------+ 

> CALL Fibonacci(30,5,100); 
+-----------+ 
| Fibonacci | 
+-----------+ 
| 832,040 | 
| 1,346,269 | 
| 2,178,309 | 
| 3,524,578 | 
| 5,702,887 | 
+-----------+ 


とにかく、誰かがオリジナルのポストに行くんクエリのベースのため、それが役に立つとクレジット見つけたいと考えています