gpt4 book ai didi

javascript - -1%7 的结果在 javascript(-1) 和 python(6) 中不同

转载 作者:太空狗 更新时间:2023-10-29 17:18:10 26 4
gpt4 key购买 nike

JavaScript 中的表达式 -1 % 7 给我 -1 作为结果。而在 Python 和 Haskell 中,我发现结果是 6

谁能解释为什么两者有不同的行为?哪一个是正确的?

最佳答案

我要给出一个稍微不同的答案。正如其他人所说,函数可以执行您定义它们的任何操作和 m - x = -x mod m。作为前奏,我会注意到 Haskell 有两个“mod”函数,modrem,它们在这方面有所不同。您可以证明 mod 在数学上更可取。 rem 对应于您在 x86 处理器上获得的内容。事实上,还有第三种,欧几里德的,它可能更好,如 Raymond Boute 在 The Euclidean Definitions of the Functions Div and Mod 中所描述的那样。 .第三种形式 always 返回正模数。 (事实上​​,至少还有两个其他选择。)

因此,Javascript 的定义是您从大多数机器 mod 操作码中获得的。从这个意义上说,它可能更可取,因为这将使它更有效地实现。在数学上,Haskell 和 Python 的定义优于 Javascript。还有第三个定义可能稍微好一点。

Euclidean 和 Haskell/Python 定义都拥有的一个关键属性是 x mod m = y mod m 等价于 x = y mod m 缺少 Javascript 的定义。您可以通过在 Javascript 中计算 6 % 7 来验证。

关于javascript - -1%7 的结果在 javascript(-1) 和 python(6) 中不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41239190/

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