日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國(guó)內(nèi)最全I(xiàn)T社區(qū)平臺(tái) 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁(yè) > 互聯(lián)網(wǎng) > HDU3117-Fibonacci Numbers(矩陣快速冪+log)

HDU3117-Fibonacci Numbers(矩陣快速冪+log)

來(lái)源:程序員人生   發(fā)布時(shí)間:2014-09-17 00:01:04 閱讀次數(shù):1851次

題目鏈接


題意:斐波那契數(shù)列,當(dāng)長(zhǎng)度大于8時(shí),要輸出前四位和后四位

思路:后四位很簡(jiǎn)單,矩陣快速冪取模,難度在于前四位的求解。 
已知斐波那契數(shù)列的通項(xiàng)公式:f(n) = (1 / sqrt(5)) * (((1 + sqrt(5)) / 2) ^ n - ((1 + sqrt(5)) / 2) ^ n),當(dāng)n >= 40時(shí)((1 + sqrt(5)) / 2) ^ n近似為0。所以我們假設(shè)f(n) = t * 10 ^ k(t為小數(shù)),所以當(dāng)兩邊同時(shí)取對(duì)數(shù)時(shí),log10(t * 10 ^ k) = log10(t) + k = log10((1 / sqrt(5)) * (((1 + sqrt(5)) / 2))) = log10(1 / sqrt(5)) + n * log10(((1 + sqrt(5)) / 2))),然后減掉整數(shù)k,就可以得到log10(t),進(jìn)而得到t值。

代碼:

#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> using namespace std; //typedef long long ll; typedef __int64 ll; const int MOD = 10000; struct mat{ ll s[2][2]; mat(ll a = 0, ll b = 0, ll c = 0, ll d = 0) { s[0][0] = a; s[0][1] = b; s[1][0] = c; s[1][1] = d; } mat operator * (const mat& c) { mat ans; memset(ans.s, 0, sizeof(ans.s)); for (int i = 0; i < 2; i++) for (int j = 0; j < 2; j++) for (int k = 0; k < 2; k++) { ans.s[i][j] = (ans.s[i][j] + s[i][k] * c.s[k][j]); if (ans.s[i][j] >= 100000000) ans.s[i][j] %= MOD; } return ans; } }c(1, 1, 1, 0), tmp(1, 0, 0, 1); ll n; mat pow_mod(ll k) { if (k == 0) return tmp; else if (k == 1) return c; mat a = pow_mod(k / 2); mat ans = a * a; if (k % 2) ans = ans * c; return ans; } int main() { while (scanf("%I64d", &n) != EOF) { if (n == 0) printf("0 "); else { mat ans = pow_mod(n - 1); if (n >= 40) { double k = log10(1.0 / sqrt(5.0)) + (double)n * log10((1.0 + sqrt(5.0)) / 2.0); double temp = k; temp = k - (int)temp; printf("%d...%.4I64d ", (int)(1000.0 * pow(10.0, temp)), ans.s[0][0] % MOD); } else printf("%I64d ", ans.s[0][0]); } } return 0; }


生活不易,碼農(nóng)辛苦
如果您覺(jué)得本網(wǎng)站對(duì)您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈(zèng)
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 国产一区二区免费在线观看 | 日韩中文字幕精品 | 国产一区二区影院 | 欧美视频一区 | 成人免费视频在线观看 | 欧美aaaaaaaaaa | 99九九视频 | 五月婷婷在线观看 | 日韩三区在线 | 成年网站| 成人福利视频 | 国产精品久久久久久中文字 | 看全色黄大色黄大片女图片第一次 | 色综合欧美 | 精品国产三级 | 久久久午夜精品 | 日韩免费在线电影 | 久久久国产一区二区三区 | 亚洲黄色片 | 欧美精品一区二区三区在线 | 亚洲 欧洲 日韩 | h视频国产| 久久大| 免费国产一区二区 | 欧美黄色网 | 二区视频| 国产精品久久久久久久久久久久冷 | 91麻豆精品国产自产在线观看一区 | 久久久国产一区二区三区 | 欧美久久一区 | 成人在线毛片 | 二区在线视频 | 成人av一区二区三区 | 国产在线视频网站 | 99免费精品| 亚洲天堂男人天堂 | a黄视频 | 国产伦精品一区二区三区免费迷 | 日本激情网 | 91av看片| 国产黄色免费网站 |