云学算法之Ackerman阿克曼函数的python实现
生活随笔
收集整理的這篇文章主要介紹了
云学算法之Ackerman阿克曼函数的python实现
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
好久沒更新啦,主要去過寒假了,??太貪玩了!還好一開學就回到了學習狀態,繼續之前的Steven Skiena CSE373 3/27
今天學到一個函數 α(n),簡稱反Ackermann函數,定義為最大的整數m使Ackermann(m,m)≤x。
就先去了解了一下 Ackerman阿克曼函數,定義如下:
?當m≥4,Ackermann函數的增長快得驚人:Ackermann(4,0)=13,Ackermann(4,1)=65533,Ackermann(4,2)=2^65536-3有19729位,(摘自百度百科)而Ackermann(4,3)得到的數就很大很大了。真神奇呀~
如果要手算函數值就要遞歸很多步,但是因為定義簡單,之前學的python就派上用場了,我試著自己寫了一下:
def ackerman(m,n):if m == 0:return n + 1elif m > 0 and n == 0:return ackerman(m-1,1)elif m > 0 and n > 0:return ackerman(m-1,ackerman(m,n-1))else:return "null" m=int(input('m:')) n=int(input('n:')) print(ackerman(m,n))算出來的一些結果如下:
m:2
n:3
9
m:1
n:1
3
m:2
n:2
7
當然,我的python承受不住太多次的迭代,值就不輸大了。
?
總結
以上是生活随笔為你收集整理的云学算法之Ackerman阿克曼函数的python实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 整人输入指定内容退出html,整人代码
- 下一篇: 开源办公套件LibreOffice