角谷定理python每次输出数_角谷定理C++递归问题,求问步数为什么总输出0?
匿名用戶
1級(jí)
2014-06-13 回答
源代碼如下:
/ /斐波那契序列比較算法項(xiàng)目N個(gè)程序,用VC + +6.0編譯通過(guò)
#包括
>長(zhǎng)FIB1(INT N);
長(zhǎng)fib2(INT N);
INT I = 0; / /操作數(shù)
/ / ---------------開(kāi)始的main()------------
>無(wú)效的主要()
{
詮釋n = 0;
法院<
CIN >> N; / /輸入?yún)?shù)為n
法院<< ENDL << ENDL; / /顯示兩個(gè)空行
/ /測(cè)試案例/> I = 0;經(jīng)營(yíng)計(jì)數(shù)器/ /數(shù)清零
法院<
COUT <
法院<< ENDL;
/ /結(jié)果表明很差運(yùn)營(yíng)效率,遞歸調(diào)用的次數(shù)居然達(dá)到了兩倍-1次操作數(shù)值結(jié)果。
/ /在N = 20的競(jìng)爭(zhēng)達(dá)到呼叫13529倍的數(shù)量的情況下。靈感
/ /但得到的是你是否可以使用這條規(guī)則推導(dǎo)公式。
/ /這是一個(gè)使用案例/ 2
/ /測(cè)試循環(huán)算法的結(jié)果=(遞歸調(diào)用1號(hào))------------- -----
我= 0;經(jīng)營(yíng)計(jì)數(shù)器/ /數(shù)清零
法院<
COUT <
法院<< ENDL;
/ /結(jié)果顯示:高運(yùn)營(yíng)效率,經(jīng)營(yíng)甚至在有條件的增幅只有n次
/ /在N = 20的情況下,前面的總數(shù)只需要循環(huán)18次,甚至兩次判決可以被認(rèn)為是計(jì)算20次。
} / / ----------------結(jié)束的main()--------------
BR /> / / ---------------開(kāi)始fib2()------------
長(zhǎng)FIB1(詮釋n)/ /使用遞歸調(diào)用
i + +; / /的操作計(jì)數(shù)器數(shù),不包括在算法復(fù)雜度統(tǒng)計(jì)。
開(kāi)關(guān)(N)/ /
{/ /
情況下0:返回0; / / -----每次通話不能跳過(guò)的判斷操作(復(fù)雜性未知)。
案例1:/ /
案例2:返回1; / /
} / /
回報(bào)FIB1(N-1)+ FIB1(N-2); / /主計(jì)算表,每個(gè)呼叫相當(dāng)于兩倍的加法運(yùn)算并返回(至少等于分配),同時(shí)也為遞歸調(diào)用(復(fù)雜性是未知的)。
} / / --------------結(jié)束FIB1()--------------
/ / - --------------開(kāi)始fib2()------------
長(zhǎng)fib2(詮釋n)/ /使用循環(huán)
{ BR />整數(shù)K = 0;
長(zhǎng)為a = 1,B = 1,C = 0;
如果(N == 0)/ /根據(jù)n的值可以算作一個(gè),以確定操作包括三名算法的復(fù)雜性。
{/ /
返回0; / /
} / /
否則,如果(N = 1 | | N = 2)/ / - |
{/ / |
返回1; / / | ---考慮到這個(gè)初始循環(huán)條件判斷的多功能性可以移動(dòng),但效率不會(huì)是最優(yōu)的,
} / / - |時(shí)鐘周期在每個(gè)周期的經(jīng)驗(yàn)增加了1-2倍的判斷操作,增加了算法的復(fù)雜性。
{
為(k = 2時(shí),K
{
B = A +(C = B) ; / /
A = C; / /(寫(xiě)為c = b的,B = A + B; A = C ;)語(yǔ)句實(shí)際操作中,只有一個(gè)加法器和3分配。
i + +; / /計(jì)算計(jì)數(shù)器的數(shù)量,該算法的復(fù)雜性,不包含在統(tǒng)計(jì)信息。
返回b;
/ / --------------結(jié)束fib2()--------------
/ *上面fib2()的代碼,以簡(jiǎn)化的形式如下:
長(zhǎng)fib2(詮釋n){
整數(shù)K = 0;
長(zhǎng)為a = 1,B = 1,C = 0;
如果(N == 0)
返回0;
如果(N = 1 | | N = 2)
返回1;
為(k = 2時(shí),K
B = A +(C = B); A = C;
}
retrun b;
------------------ * /
與50位技術(shù)專家面對(duì)面20年技術(shù)見(jiàn)證,附贈(zèng)技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的角谷定理python每次输出数_角谷定理C++递归问题,求问步数为什么总输出0?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 堆栈转化8进制_11张卡片学会进制转换
- 下一篇: python循环捕捉异常_python异