微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我可以在扩展 (a + b) % k 时忽略最后一个 k 吗?

如何解决我可以在扩展 (a + b) % k 时忽略最后一个 k 吗?

今天我试图解决一个涉及模算术的问题。我无法解决它。所以我在 Geeks for Geeks 上查了一下

enter image description here

上图显示了作者所做的。我知道两个数的模加法

(a + b) % m = (a % m + b % m) % m

这适用于 ab

的任何正值

当我考虑作者在图像中使用的公式时。

a % k + b % k = 0

我为 abk 替换了一些随机值,看看它是否真的有效。事实证明,对于输入值 a = 2,b = 5k = 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、ck

的任何正值

在等式中,

(a + b) % k = (a % k + b % k) % k

我可以忽略最后一个 k 并继续扩展 (a + b) % k 吗?。我想知道最后一个 k 的缺失如何不影响最终结果

解决方法

不,a = b = 0 是一个反例。

确实,最终公式是不正确的,假设 % 表示截除的余数。让 a = 1b = -1。 (在 Python 中,或者对于非负整数,都可以。)

这就是为什么数学家更喜欢处理等价模 K,这样可以避免将模运算符放在哪里的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。