gpt4 book ai didi

operator-keyword - 负模运算符结果的目的是什么?

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

我之前(天真)假设模数运算符返回除法的余数。我显然错了,因为 -2 % 5 返回 3。我本以为 5 除以 -2 零次,余数为 -2。

现在我明白了这个操作是如何执行的,但我的问题是为什么?谁能给我一个解释为什么模数和余数不是同义词的链接,或者一个有用的情况的例子?

最佳答案

结果完全正确。模运算定义如下(我将使用“一致”,因为我不能用三行输入等号)

a congruent b mod c 当且仅当 a-b 是 c 的倍数,即对于某个整数 x,x * c = (a-b)。

例如

0 congruent 0 mod 5 (0 * 5 = 0-0)
1 congruent 1 mod 5 (0 * 5 = 1-1)
2 congruent 2 mod 5 (0 * 5 = 2-2)
3 congruent 3 mod 5 (0 * 5 = 3-3)
4 congruent 4 mod 5 (0 * 5 = 4-4)
5 congruent 0 mod 5 (1 * 5 = 5-0)
6 congruent 1 mod 5 (1 * 5 = 6-1)
...

同样可以扩展到负整数:

-1 congruent 4 mod 5 (-1 * 5 = -1-4)
-2 congruent 3 mod 5 (-1 * 5 = -2-3)
-3 congruent 2 mod 5 (-1 * 5 = -3-2)
-4 congruent 1 mod 5 (-1 * 5 = -4-1)
-5 congruent 5 mod 5 (-1 * 5 = -5-0)
-6 congruent 4 mod 5 (-2 * 5 = -6-4)
-7 congruent 3 mod 5 (-2 * 5 = -7-3)
...

如您所见,很多整数都是 3 mod 5 全等的: ..., -12, -7, -2, 3, 8, 13, ...

在数学中,这些数的集合被称为由等价关系“同余”导出的等价类。我们对余数的理解和“mod”函数的定义都是基于这个等价类。 “余数”或模计算的结果是等价类的代表性元素。通过声明,我们选择了最小的非负元素(因此 -2 不是有效的候选者)。

因此,当您读到 -2 mod 5 = x 时,这会转化为“找到最小的非负 x 以便存在一个整数 y 且 y * 5 = -2 - x”,这与同余的定义一致。解决方案是 y=1 和 x = 3,正如您通过简单地尝试 y 的其他值所看到的那样。

关于operator-keyword - 负模运算符结果的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6755946/

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