強大的ackermann函式

2022-03-15 22:57:27 字數 653 閱讀 4384

演算法老師給我們布置的兩道題拖了幾天了,今天決定搞定它們。

其中有一道就是:

計算ackermann函式ack(m,n)的遞迴計算函式。 對於m>=0,n>=0,ack(m,n)定義為:

ack(0,n)=n+1;

ack(m,0)=ack(m-1,1);

ack(m,n)=ack(m-1,ack(m,n-1))

對著題目看了半天,都不明白這個遞迴究竟是什麼意思,也沒在意,就寫了程式直接執行:

#include

using namespace std;

unsigned int ack(unsigned int m,unsigned int n)

int main()

{unsigned int m,n;

cin>>m>>n;

cout《隨手輸入了幾組m,n居然發現有很多次電腦都比較長時間沒反應。按說我寫的遞迴沒什麼問題啊,於是就谷歌了下ackermann,結果……目瞪口呆,心服口服。原來這是歷史上乙個著名的遞迴函式!具體的資料大家可以到去看,懶得看英文的看那幾個**就行了!

令我吃驚的資料:

ack(4,2)=2的65536次方-3    這個,我估計得算相當久,也不知道用什麼型別來存結果最適合,放棄……

一句感嘆:它膨脹得太快了,是我有眼不識泰山!

Ackermann函式的個人理解

最近又從頭看起 sicp 其中一道練習 1.10 裡提到了ackermann函式,但定義似乎有些不同。lang scheme define a x y cond y 0 0 x 0 2 y y 1 2 else a x 1 a x y 1 lisp括號真的多 簡單來說就是乙個函式a x,y y 0時...

Ackermann函式的遞迴與非遞迴演算法

折騰了我將近一周了,沒查到能實際應用的程式 只好自己魔改 ifndef pch h define pch h 科普 阿克曼函式 ackermann 0,n n 1 ackermann 1,n n 2 ackermann 2,n 2 n 3 ackermann 3,n 2 n 3 3 include ...

強大的sscanf函式

int sscanf const char buffer,const char format,argument buffer 儲存的資料 format 格式控制字串。argument 可選自變數 sscanf sscanf與scanf類似,都是用於輸入的,只是後者以鍵盤 stdin 為輸入源,前者以...