您好,匿名用户
随意问技术百科期待您的加入

对于很大的N和一个比较大的质数p,如何快速计算nCk % p?

0 投票

对于比较小的数据规模,比如说:

- P不大(P <= 10000),用Lucas定理就可以很轻松的解决,时间复杂度是O(log(n)),非常地快。
- P很大,但是n不大(P <= 10^9, n <= 100000),那根据组合的定义,计算乘法逆元就好了,如果不预处理就是O(nlogn),也还挺快的。

但是如果数据范围达到了P <= 10^9+7, N <= 10^100,P为质数,应该如何快速计算?

用户头像 提问 2013年 12月2日 @ Capricorn 上等兵 (188 威望)
分享到:

1个回答

0 投票

你是说想找到一个比利用LUCAS定理算法复杂度更低的算法吗?
N达到这个量级时,计算机存储超过330位,绕不开大数计算,而这个问题如果不考虑计算机运算位数限制的话显然LUCAS定理是最优办法,因此我觉得快速算法的核心在大数运算上

用户头像 回复 2013年 12月2日 @ Xin Zhao 上等兵 (320 威望)
提一个问题:

相关问题

0 投票
1 回复 29 阅读
0 投票
1 回复 24 阅读
用户头像 提问 2014年 2月15日 @ Shen 上等兵 (318 威望)
0 投票
0 回复 53 阅读
0 投票
1 回复 47 阅读
用户头像 提问 2012年 12月1日 @ Nasus 上等兵 (329 威望)
0 投票
1 回复 31 阅读
用户头像 提问 2012年 12月1日 @ Malphite 上等兵 (306 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...