gpt4 book ai didi

java - Matlab 与 Java 中的递归

转载 作者:行者123 更新时间:2023-12-04 02:28:04 24 4
gpt4 key购买 nike

我在 Java 中破解了一个递归函数来解决我的 Stats 类中的作业问题,它看起来像这样:

public static int d (int k, int n) {
if (n == 1) return 1;
else if (n > k) return 0;
else return n*d(k-1, n) + n*d(k-1,n-1);
}

然后我将 (20, 8) 代入该函数,得到 998,925,952。然而,我的教授说这个答案是错误的,在反复思考我的代码后,我决定在 Matlab 中尝试同样的事情:

function t = d(k,n)
t = 0;
if n == 1
t = 1;
elseif n > k
t = 0;
else
t = n*d(k-1, n) + n*d(k-1, n-1);
end

显然,此函数通过上述输入为我提供了正确答案,6.1169 * 10^17。

这一直困扰着我一整天,我完全不知道为什么用两种不同语言编写的两个看似相同的程序会给我完全不同的结果。谁能帮忙解释一下?

最佳答案

您的 Matlab 例程可能处理浮点输入,因此它将以浮点计算。

您的 Java 例程具有整数类型; 6.1169e17 超出支持范围,因此溢出。尝试将类型更改为 floatdouble

关于java - Matlab 与 Java 中的递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7409784/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com