【发布时间】:2023-03-16 17:35:01
【问题描述】:
问题是关于非常大数的模运算符。
例如考虑一个要计算排列总数的问题。
考虑一个 90 位数字,9 个数字(1 到 9)中的每一个都重复 10 次
所以要计算90!/(10!)^9)
在阅读了 StackOverflow 上的许多答案后,我使用了对数。
现在考虑日志值为 1923.32877864。
现在我的问题是如何显示以“m”为模的答案(即 10 ^ log10(value) )?
这是计算可能排列数的最佳方法吗?
编辑 得到了解决方案:)
感谢 duedl0r。
按照您使用模乘逆指定的方式进行操作。谢谢 :)
【问题讨论】:
-
m是适合 31 位的整数吗? -
是
m的质数,还是至少与10!互质? -
是的,它适合 31 位 .. 最多 10^9 。
-
m 是 10^9+7 对于这个特定的问题(它来自一个 spoj 网站)
-
如果您确实需要整数模数,那么使用对数是错误的方法。请注意,结果将是一个整数,因此您可以只使用一个大整数形式。