【问题标题】:calculating modulo for large number计算大数的模
【发布时间】:2010-10-25 19:56:06
【问题描述】:

全部,

如何计算 2^301 mod 77?我确实查看了链接StackOverflow。但是不明白625 mod 221 = 183 mod 221的步骤。转换是如何发生的?

【问题讨论】:

  • 我不明白为什么将 625 表示为 183 + 2*221 ??
  • 如果我写成625 / 221 = 2, remainder 183,你明白吗? en.wikipedia.org/wiki/Remainder
  • 顺便说一句。你在美国的学校里不做这些事情吗?
  • 呃...好的。我其实不在乎。我有点惊讶的是,从事 IT 工作的人不了解 的概念。
  • 好吧..我也不在乎你的想法。我的问题特别说明了大数的模数,而不是概念。这可能会让您感到惊讶,但没有多少软件工程师每天都在实现这一点。

标签: math modulo


【解决方案1】:

查看问题here 以获得您问题的答案。

基本上,(X * Y) % Z == ((X % Z) * (Y % Z)) % Z

因此,作为起点,2^301 % 77 == ((2^150 % 77) * (2^151 % 77)) % 77。继续分裂,直到你有合理的数字,然后重新组合。您将能够在整个过程中将您的数字保持在合理的大小。

【讨论】:

  • 对不起,我之前没有想到这一点,但如果您使用的是 Java,则有 BigInteger.modPow()。然后你甚至不需要自己实现它,(除非这是家庭作业?)。
【解决方案2】:

我不明白您帖子的第二部分,可能是因为您没有包含您实际关注的链接。但是您的问题可以通过阅读this 页面并实施适当的模幂运算来解决

【讨论】:

    猜你喜欢
    • 2011-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多