【问题标题】:How to simplify modulo如何简化模数
【发布时间】:2013-10-15 21:31:15
【问题描述】:

我正在尝试查找表达式的模数。我只知道

(a+b) mod N = ((a mod N) + (b mod N)) mod N

如何用它来简化下面的模运算?

(a - 2*b + 1) mod N

必须有某种方法来简化它,将其视为

(a - b - b + 1) mod N ?

编辑:

我也偶然发现了以下属性:

ab mod N = ((a mod N) (b mod N)) mod N

这会有所帮助吗?

【问题讨论】:

  • 确实应该是 (b*-2 + a + 1) % n 以避免混淆

标签: math numbers modulo


【解决方案1】:

不幸的是,没有办法简化(b*-2 + a + 1) % n

【讨论】:

  • 不能把它简化为 (a -b -b +1) mod N 吗?
  • (a - 2*b + 1) mod N = (((a-2*b) mod N) + (1 mod N)) mod N 1 mod N = 0,这样就简化为(((a-2*b) mod N) mod N) 我不知道那是不是“更简单”,但这不应该有效吗?
  • 如果您认为这更简单,那么可以
  • 很公平。它使用了声明的属性,但绝对不是更干净,并且使用相同数量的操作。
  • @KyleTravis 为什么 1 mod N = 0?
【解决方案2】:

如果:(a+b) mod N = ((a mod N) + (b mod N)) mod N

然后:

(a - 2*b + 1) mod N = ((a mod N) - (b mod N) - (b mod N) + (1 mod N)) mod N

a 和 b 的值越大,N 的值越小,它就越简单。

例如:a=85773,b=77733340,N=5: 你更愿意解决哪个

(85773 - 77733340 - 77733340 + 1) mod 5

((85773 mod 5) - (77733340 mod 5) - (77733340 mod 5) + (1 mod 5)) mod 5

第二个我得到(3 - 0 - 0 + 1) % 5 = 4

【讨论】:

  • 正是我想要的!谢谢。
猜你喜欢
  • 2017-01-14
  • 1970-01-01
  • 2011-12-08
  • 2011-07-14
  • 2021-01-30
  • 1970-01-01
  • 2015-11-01
  • 2018-05-27
相关资源
最近更新 更多