费马小定理和排列组合 欧拉函数

今天学到了一点关于求排列组合用费马小定理来解决的例子:

费马小定理:a^(p-1) ≡1(mod p)a和p是互质的(p为质数)。 那么对于任意的求a^m%p则可以转换为a^(m%(p-1))%p,可以使复杂度很高的求此方的进行化简

欧拉函数上的应用就是:  a,m互质,a^φ(m)≡1(mod m)//(φ(m)为欧拉函数,表示的是m之前与m互质的正整数的个数,而如果m为质数的话则m-1就为m的欧拉函数值,这又到了费马小定理

求排列组合中的C(n,m),如果n和m都很大,而且取得的值是要模上mod,那么如果仍然按照n!/(m!*(n-m)!)算的话肯定就会爆,如果边去摸边算的话结果就会不对,那么应该怎么算呢?

转换为n!*(m!)^(md-2)*((n-m)!^mod-2);mod-2也可以为mod的欧拉函数值-1,这里暂且设mod为质数

因为求的是n!/(m!*(n-m)!),则可以转换为n!*(m!)^(-1)*(n-m)!^-1,

n!*m!^(-1)*(n-m)!^(-1) *m!^(mod-1) *(n-m)!^(mod-1),因为后两项都为1,所以乘后结果不变,然后就转换为了上面的式子,这样就不用担心除法的时候因为取模的问题了!

还是多校的时候看到别人的代码明白的。。。。。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

淡定的小Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值