我试图找到表达式的模数。我所知道的只是
(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
这会有所帮助吗?
答案 0 :(得分:1)
遗憾的是,无法简化(b*-2 + a + 1) % n
。
答案 1 :(得分:1)
如果:(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