1. 程式人生 > >斐波那契常見規律(總結)

斐波那契常見規律(總結)

斐波那契數列規律總結

  1. 隨著數列項數的增加,前一項與後一項之比越來越逼近黃金分割的數值0.6180339887..
  2. 從第二項開始,每個奇數項的平方都比前後兩項之積多1,每個偶數項的平方都比前後兩項之積少1。(注:奇數項和偶數項是指項數的奇偶,而並不是指數列的數字本身的奇偶,比如第五項的平方比前後兩項之積多1,第四項的平方比前後兩項之積少1)
  3. 斐波那契數列的第n項同時也代表了集合{1,2,…,n}中所有不包含相鄰正整數的子集個數。
  4. f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1
  5. f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)
  6. f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1
  7. [f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)
  8. f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1
  9. f(m+n)=f(m-1)·f(n-1)+f(m)·f(n) (利用這一點,可以用程式編出時間複雜度僅為O(log n)的程式。)
  10. [f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)
  11. f(2n-1)=[f(n)]^2-[f(n-2)]^2
  12. 3f(n)=f(n+2)+f(n-2)
  13. f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]斐波那契數列
  14. 通向公式 an=(1/√5)*[(1+√5/2)^n-(1-√5/2)^n](n=1,2,3…..)
  15. gcd(fib(n),fib(m))=fib(gcd(n,m))
  16. 如果fib(k)能被x整除,則fib(k*i)都可以被x整除。
  17. 數列中相鄰兩項的前項比後項的極限(-1+√5)/2
  18. 求遞推公式a(1)=1,a(n+1)=1+1/a(n)的通項公式 a(n)=fib(n+1)/fib(n)
  19. 可用矩陣快速冪求
    這裡寫圖片描述
    這裡寫圖片描述

相關推薦

常見規律(總結)

斐波那契數列規律總結 隨著數列項數的增加,前一項與後一項之比越來越逼近黃金分割的數值0.6180339887.. 從第二項開始,每個奇數項的平方都比前後兩項之積多1,每個偶數項的平方都比前後兩項之積

ZOJ-2060 Fibonacci Again(規律,水題)

ZOJ Problem Set - 2060 Fibonacci Again Time Limit: 2 Seconds      Memory Limit: 65536 KB There ar

數列性質總結

對於斐波那契數列: 遞推公式:fn=fn-1+fn-2(n>=2)  f0=0,f1=1; 性質除第一條外來自百度 性質一:模除週期性  數列的數模除某個數的結果會呈現一定週期性,因為數列中的某個數取決與前兩個數,一旦有連著的兩個數的模除結果分別等於第0 第一項的模除

51nod 1350 表示 (找規律遞推)

spa 找規律 type 遞歸 dev mes 遞推 ima str 分析: - -! 找規律。。。首先可以歸納證明,對於n,最佳的取法是先取不大於n的最大的那個斐波那契數,然後遞推.從而可以得到算出F(n)的一個方法,但是n的範圍太大了,先算出n較小的情況,會發現:

遞歸總結數列的實現

其中 文件 main 應用 殺毒 個數 std bsp 理解 優點:遞歸給某些編程問題提供了簡單的方法 缺點:有缺陷的遞歸會很快耗盡計算機的資源,遞歸的程序難以理解和維護 殺毒軟件會全盤掃描文件,其中就應用了遞歸 斐波那契數列的實現如下 #include<stdio

ACM_無聊者序列(數列大數+同余+規律

一個 第一個 水過 輸入一個整數 style ++ 簡單 之間 des Problem Description: 瓜瓜在玩著由紅色和藍色的大理石做成的玻璃珠,他將n個玻璃珠從左到右排成一個序列叫做無聊者序列。一個非空的紅色和藍色玻璃珠組成的序列是一個無聊者序列。這個序列的玻

輸入一個數據n,計算數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和。

import java.util.Scanner; /** * 輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和 * 計算斐波那契數列(Fibonacci)的第n個值. */ public cla

Python中幾種常見方法實現數列

Python常見斐波那契解決方案 n=35 #1.遞迴求斐波那契 def fibo(n): return 1 if n<3 else fibo(n-1)+fibo(n-2) print(fibo(n)) #2.迴圈求斐波那契 f1,f2=0,1 for i

js遞歸階乘規律

fun cti res code pre 找規律 get == class 例子 //階乘 function getRes(n) { if(n == 1) {return 1;} return getRes(n-1) * n; } let a = getR

輸入一個數據n,計算數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和。

import java.util.Scanner; /** * 輸入一個數據n,計算斐波那契數列(Fibonacci)的第n個值 1 1 2 3 5 8 13 21 34 規律:一個數等於前兩個數之和 * 計算斐波那契數列(Fibonacci)的第n個值.

典型的動態規劃題目總結數列相關)

1.常規跳臺階 一隻青蛙一次可以跳上1級臺階,也可以跳上2級。求該青蛙跳上一個n級的臺階總共有多少種跳法(先後次序不同算不同的結果)。 大體思路: 第 i 個樓梯可以從第 i-1 和 i-2 個樓梯再走一步到達,即走到第 i 個樓梯的方法數為走到第 i-1 和第 i-2 個樓梯的方法數之和。所以可以推匯出遞推

總結:生成函式(通項公式推導)

生成函式總結 # 前言 > * ~~生成函式是什麼啊?能吃嗎?~~ > * 生成函式(generating function),又稱母函式,是一種形式冪級數,其每一項的係數可以提供關於這個序列的資訊。——oi-wiki > * ~~太晦澀了~~,簡而言之,對於一個序列,其生成函式就是以這個序列為係數的多項

[luoguP1962] 數列(矩陣快速冪)

truct ons 技術 pan opera http 快速冪 printf ble 傳送門 解析詳見julao博客連接 http://worldframe.top/2017/05/10/清單-數學方法-——-矩陣/ —&

Java 兔子問題(數列)擴展篇

aik 第一個 truct func main target htm bre trace Java 兔子問題(斐波那契數列)擴展篇 斐波那契數列指的是這樣一個數列 0, 1, 1, 2,3, 5, 8, 13, 21, 34, 55, 89, 144, ...對於這個

數列算法

string () lis temp -1 代碼 需要 cci key 今天研究了下Fibonacci算法,實現了遞歸和非遞歸兩種方式得到指定第n個的值。 代碼如下: 遞歸方式: public static int getFib(int a){ i

hdu 4549 M數列(矩陣高速冪,高速冪降冪)

else if stdlib.h article 1.0 ostream void 我們 memset font http://acm.hdu.edu.cn/showproblem.php?pid=4549 f[0] = a^1*b^0%p,f[1] = a^0*b

vijos - P1543極值問題(數列 + 公式推導 + python)

找到 span add gin python3 abi pri n) fill P1543極值問題 Accepted 標簽:[顯示標簽] 背景 小銘的數學之旅2。 描寫敘述 已知m、n為整數,且滿足下列兩個條件: ①

通過“”數列“”學習函數遞歸

range else ret bsp 方法 res ... fbi 結果 斐波那契數列:   f(0) = 0 f(1) = 1 f(2) = 1 f(3) = 2 f(4) = 3 f(5) = 8 .......f(n) = f(n - 2) + f(n - 1

golang 閉包,傳統

nac import urn for index acc == i++ func package mainimport ( "fmt")func main() { f := fibonacci() for i := 0; i < 10; i++ {

數的python語言實現---遞歸和叠代

put bsp print span return spa number n-2 遞歸實現 叠代實現如下: def fab(n): n1 = 1 n2 = 1 if n<1: print