做x mod 1000000007的想法是什么?

Soh*_*ury 17 math modulo

在许多编程问题(例如一些Project Euler问题)中,我们被要求报告答案,将剩余的答案除以1,000,000,007.

为什么不是其他号码?

编辑:2年后,这就是我所知道的:数字是一个很大的素数,对这样一个问题的任何答案都是如此之大,以至于报告一个余数是有意义的(因为该数字可能对于本机数据类型来说太大了)处理).

Dmi*_*kov 18

让我玩一个telepathist.1000 ... 7是素数,1000000007是适合32位整数的最大值.由于素数用于计算散列(通过按素数查找除法的余数),因此1000000007适用于计算32位散列.

  • 它绝不是适合签名的32位整数的最大素数!毕竟,这将以"2"开头.然而,它是最小的十位数素数. (5认同)
  • 我认为比赛可能会因为一系列原因而使用它:Primes更适合进行模运算; 使用大素数强制代码*think*; 带有'n`数字的第一个素数是'带有'n`数字'的素数的明显选择:) (2认同)