如何解决我可以在扩展 (a + b) % k 时忽略最后一个 k 吗?
今天我试图解决一个涉及模算术的问题。我无法解决它。所以我在 Geeks for Geeks 上查了一下
上图显示了作者所做的。我知道两个数的模加法
(a + b) % m = (a % m + b % m) % m
这适用于 a 和 b
的任何正值当我考虑作者在图像中使用的公式时。
a % k + b % k = 0
我为 a 、 b 和 k 替换了一些随机值,看看它是否真的有效。事实证明,对于输入值 a = 2,b = 5 和 k = 7,它失败了。
2 % 7 + 5 % 7 = 7 ≠ 0
当我考虑最后一个等式时。成功了。
b % k = (k - a % k) % k
(5 % 7) = (7 - 2 % 7) % 7
5 % 7 = 5 % 7
(a + b) % k = c
当我用和作者相同的想法解出上面的方程时,我得到了
(a + b) % k = c
a % k + b % k = c
b % k = (c - a % k + k) % k
它适用于 a、b、c 和 k
的任何正值在等式中,
(a + b) % k = (a % k + b % k) % k
我可以忽略最后一个 k 并继续扩展 (a + b) % k 吗?。我想知道最后一个 k 的缺失如何不影响最终结果
解决方法
不,a = b = 0
是一个反例。
确实,最终公式是不正确的,假设 %
表示截除的余数。让 a = 1
和 b = -1
。 (在 Python 中,或者对于非负整数,都可以。)
这就是为什么数学家更喜欢处理等价模 K
,这样可以避免将模运算符放在哪里的问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。