- 问答
- 2015-04-12 20:03:41 @
如何处理C(n,r)mod m ,n很大,中的 r!, 也就是如何把 r!除去,有好方法么,各位?
6 条评论
-
Towerlight LV 10 @ 2015-04-28 19:58:20
求 m 的范围和具体要求的式子………………
-
2015-04-28 07:13:10@
没听懂...Lucas定理可以吗?
-
2015-04-16 19:43:03@
orz楼下,看不懂
-
2015-04-16 13:03:39@
0.写一个函数
mul(a,b)
,用快速幂求出a^b mod m
的值。
1.开两个数组a和b,a[i]代表要求这个数的几次幂,b[i]是这个数的**某个质因子**。
2.将a数组设为你想要的值(-1次代表除以这个数),用筛选法求出b数组。
3.从大到小遍历a数组,对于每个i,如果这个数是质数(即b[i]=i)那么ans:=(ans*mul(i,a[i])) mod m
否则a[i div b[i]]:=a[i div b[i]]+b[i];a[b[i]]:=a[b[i]]+a[i]
(理由是i^a[i]=(i/k)^a[i]*k^a[i]
)
4.输出ans就可以了。
(思路来自于这里) -
2015-04-15 12:57:16@
不是
-
2015-04-13 17:13:22@
m是质数吗?
- 1