Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
688^79 模 3337 = 1570。
当我在 wolfram alpha 上尝试这个时,我得到了:
但是当我在 Matlab 中输入相同的内容时,我得到 364 作为答案。我一定是做错了什么。
对此的任何说明将不胜感激。
原因是 Matlabdouble默认使用浮点运算。像 688^79 这样大的数字不能准确地表示为double. (可以准确表示为 a 的最大整数double约为2^53)。
double
要获得正确的结果,您可以使用符号变量,这可以确保您不会失去准确性:
>> x = sym('688^79'); >> y = sym('3337'); >> mod(x, y) ans = 1570
我的计算器给我的答案与 Wolfram 相同,它还计算了 688^79 的值,所以我倾向于相信 Wolfram 是对的。您可能已经用如此庞大的数量超出了 Matlab 的容量,这就是它没有发送正确答案的原因。