首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个数除法的模逆

两个数除法的模逆
EN

Stack Overflow用户
提问于 2015-10-03 22:40:44
回答 1查看 600关注 0票数 0

我知道(a/b)mod M= ab^-1 mod M

并且当M是素数时,b^-1 = b^(M-2)

我必须计算(121/2)模M,其中M= 1000000007 (1e9 + 7)

使用简单除法:(121/2)modM = (60)mod M= 60%M = 60

模逆:(121/2)mod M = (121 mod M) *(2 ^(M-2) mod M)

2 ^(M-2) mod M这里是500000004 (链接:http://www.cs.princeton.edu/~dsri/modular-inversion-answer.php?n=2&p=1000000007)

因此,上述表达式为(121 mod M* 500000004)mod M= 60500000484 mod M= 500000064

我到底做错什么了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-03 22:59:55

您不能执行整数除法,并期望得到相同的结果。你的计算实际上应该是:

121/2 (mod M) = 60 + 1/2 (mod M) = 60 + 50000004 = (mod M) = 50000064

而不是

121/2 (mod M) = 60 (mod M)

由于没有关于floor函数的定义,从有理数Q到群N (仅为有理数定义为自然数,floor: Q -> N),您应该像对待理性主义那样对待N中的除法,即使用剩馀数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32928227

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档