天天看點

為什麼程式設計題總是結果模10^9+7

為了避免得到的結果太大,導緻溢出問題

算法題中通常會要求對 10^9+7 取模,來避免整數溢出的問題。其中10^9+7是一個比較大的質數。

10^x+7多半時候是1e9+7吧。模一個大數和模一個質數可以減少沖突。比如說如果所有的結果都是偶數…你模6就隻可能出現0, 2, 4這三種情況…但模5還是可以出現2, 4, 1, 3這四(4=5-1)種情況的…hash表如果是用取模的方法也要模一個大質數來減少沖突,出題人也會這樣來 希望減少你“蒙對“的機率。而模1e9+7又有一個很好的特點,就是相加不爆int,相乘不爆long long。PS:另外,我覺得這其實也是一種文化……最初大家都用1e9+7這個大質數……後來就會有人獨出心裁要用1e8+7之類的…

繼續閱讀