【发布时间】:2013-12-06 05:45:20
【问题描述】:
用 Java 编写的标准阿克曼公式:
public static int ack(int x, int y) {
if (x == 0) {
return y + 1;
} else if (y == 0) {
return ack(x-1, 1);
} else {
// perforce (x > 0) && (y > 0)
return ack(x-1, ack(x,y-1));
}
}
我一直在想 - 是否有更快的版本来实现这一点?我在想也许有通过使用累加器或循环。
【问题讨论】:
-
我可能会问有什么意义?我听说过的阿克曼函数唯一真正的非理论用途是作为算法运行时的上限。玩具实现是否快速真的很重要吗?
-
我认为这里的另一个问题是你为什么今天两次问这个问题?一次用于java,一次用于scheme? stackoverflow.com/questions/20393589/…在另一个问题上,你得到的答案基本相同。
标签: java performance optimization ackermann