【问题标题】:Modular exponentiation - how to reduce huge modulus?模幂 - 如何减少巨大的模数?
【发布时间】:2012-10-07 10:23:50
【问题描述】:

模幂运算的典型方程是 (a + b) MOD n = ((a MOD n) + (b MOD n)) MOD n。如果 a 和 b 非常大,那就太棒了。 但是我被要求用一个非常大的 n (2^31 -1) 做这个幂运算,a 和 b 没问题。

我只是需要一种减少 n 的方法。

【问题讨论】:

    标签: c++ modulus modular reduction exponentiation


    【解决方案1】:

    "(a + b) MOD n = ((a MOD n) + (b MOD n)) MOD n" 不是指数,是加法。

    "(2^31 -1)" 不是“巨大的 n”,它是 31 位设置为 1。

    由于这些基本假设完全是错误的,而且问题显然是家庭作业,因此很难在不损害 OP 的情况下给出更具体的建议。已经说过的应该足以暗示可以解决分配问题。或者,可以开始分配任务,然后发布一个新的 SO 问题。

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 2015-09-18
      • 2021-07-03
      • 2017-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-18
      相关资源
      最近更新 更多