fibonacci數列通項公式∴f(n)=(1/√5)*
性質:[plain]view plain
copy
print?
1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1。
2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)。
3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1。
4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)。
5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1。
6.f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)。
利用這一點,可以用程式編出時間複雜度僅為o(log n)的程式。
7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)。
8.f(2n-1)=[f(n)]^2-[f(n-2)]^2。
9.3f(n)=f(n+2)+f(n-2)。
10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]
11.f(2n+1)=[f(n)]^2+[f(n+1)]^2.
1.f(0)+f(1)+f(2)+…+f(n)=f(n+2)-1。
2.f(1)+f(3)+f(5)+…+f(2n-1)=f(2n)。
3.f(2)+f(4)+f(6)+…+f(2n) =f(2n+1)-1。
4.[f(0)]^2+[f(1)]^2+…+[f(n)]^2=f(n)·f(n+1)。
5.f(0)-f(1)+f(2)-…+(-1)^n·f(n)=(-1)^n·[f(n+1)-f(n)]+1。
6.f(m+n-1)=f(m-1)·f(n-1)+f(m)·f(n)。
利用這一點,可以用程式編出時間複雜度僅為o(log n)的程式。
7.[f(n)]^2=(-1)^(n-1)+f(n-1)·f(n+1)。
8.f(2n-1)=[f(n)]^2-[f(n-2)]^2。
9.3f(n)=f(n+2)+f(n-2)。
10.f(2n-2m-2)[f(2n)+f(2n+2)]=f(2m+2)+f(4n-2m) [ n〉m≥-1,且n≥1]
11.f(2n+1)=[f(n)]^2+[f(n+1)]^2.
[plain]view plain
copy
print?
每3個數有且只有乙個被2整除,
每4個數有且只有乙個被3整除,
每5個數有且只有乙個被5整除,
每6個數有且只有乙個被8整除,
每7個數有且只有乙個被13整除,
每8個數有且只有乙個被21整除,
每9個數有且只有乙個被34整除,
.......
我們看到第5、7、11、13、17、23位分別是素數:5,13,89,233,1597,28657(第19位不是)
每3個數有且只有乙個被2整除,
每4個數有且只有乙個被3整除,
每5個數有且只有乙個被5整除,
每6個數有且只有乙個被8整除,
每7個數有且只有乙個被13整除,
每8個數有且只有乙個被21整除,
每9個數有且只有乙個被34整除,
.......
我們看到第5、7、11、13、17、23位分別是素數:5,13,89,233,1597,28657(第19位不是)
[plain]view plain
copy
print?
11235,83145,94370,77415,61785.38190,
99875,27965,16730,33695,49325,72910…
11235,83145,94370,77415,61785.38190,
99875,27965,16730,33695,49325,72910…
本題題意:
本題可以利用性質4 和 6
定義sum[i]=sigma(p[j]) 1<=j<=i .
有p[i]=f[2*i-1]^2+f[2*i]^2.
則由公式4可知sum[i]=f[2*i]*f[2*i+1].
之後直接求得sum[r]-sum[l-1]即可。
這是我第一次矩陣連乘 用的是預處理f[2^n].
hdu 跑了78ms 第11 估計前10個跑62的 都是貼的同乙個模板吧
[cpp]view plain
copy
print?
#include
#include
typedef
long
long ll;
const ll mod=1000000007;
ll mtrx[60][2][2];
void debug (ll a[2])
void pre_pro()
} ll fib (ll a)
; ll tmp[2][2];
for (int p=0 ; a ; a>>=1 , ++p)
} //debug (mat);
return mat[0][0];
} ll sum(ll a)
int main ()
return 0;
}
#include #include typedef long long ll;
const ll mod=1000000007;
ll mtrx[60][2][2];
void debug (ll a[2])
void pre_pro()
}ll fib (ll a)
; ll tmp[2][2];
for (int p=0 ; a ; a>>=1 , ++p)
}//debug (mat);
return mat[0][0];
}ll sum(ll a)
int main ()
return 0;
}
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...
迴圈斐波那契數列 斐波那契數列應用
什麼是斐波那契數列 斐波那契數列指的是這樣乙個數列 1,1,2,3,5,8,13,21,34,55,89,144 這個數列從第3項開始,每一項都等於前兩項之和 台階問題 有一段樓梯有10級台階,規定每一步只能跨一級或兩級,要登上第10級台階有幾種不同的走法?這就是乙個斐波那契數列 登上第一級台階有一...
斐波那契數列
1 題目描述 大家都知道斐波那契數列,現在要求輸入乙個整數n,請你輸出斐波那契數列的第n項。斐波那契數列的定義如下 輸入 輸入可能包含多個測試樣例,對於每個測試案例,輸入包括乙個整數n 1 n 70 輸出 對應每個測試案例,輸出第n項斐波那契數列的值。2 這是九度上的乙個題,要求時間限制1秒,整數的...