算法 --- 阿克曼(Ackmann)函数
生活随笔
收集整理的這篇文章主要介紹了
算法 --- 阿克曼(Ackmann)函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.定義
阿克曼函數(Ackermann)是非原始遞歸函數的例子。它需要兩個自然數作為輸入值,輸出一個自然數。它的輸出值增長速度非常高,僅是對于(4,3)的輸出已大得不能準確計算。
?Ackermann函數定義如下:
若m=0,返回n+1。
若m>0且n=0,返回Ackermann(m-1,1)。
若m>0且n>0,返回Ackermann(m-1,Ackermann(m,n-1))。
2.Java源碼
public class Test { public static void main(String[] args) throws Exception {Scanner scanner = new Scanner(System.in);int m = scanner.nextInt();int n = scanner.nextInt();if (m >= 0 && n >= 0) {System.out.println(ackmann(m,n));}}private static int ackmann (int m, int n) {if (m == 0) return n+1;if (m > 0 && n == 0) return ackmann(m-1,1);return ackmann(m-1,ackmann(m,n-1));} }輸入: 2 3 結果: 9?
總結
以上是生活随笔為你收集整理的算法 --- 阿克曼(Ackmann)函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 井下作业类毕业论文文献有哪些?
- 下一篇: wps表格l制作甘特图_WPS表格制作进