acgo题库
  • 首页
  • 题库
  • 学习
  • 天梯
  • 备赛

    竞赛

    • CSP-J/S
    • 蓝桥杯

    考级

    • GESP
    • CPA
    • 电子学会考级
  • 竞赛
  • 讨论
  • 团队
  • 商城
登录
注册
题目详情提交记录(0)
  • 大规模组合数计算之费马小定理之逆元

    大规模组合数计算,利用帕斯卡恒等式的递归会超时,利用帕斯卡三角形(杨辉三角)的递推会超存储。 必须直接使用组合数的计算公式:*****)=n!/(m!*(n-m)!) 数值较大,一般对某个数值取模之后的结果。 取模运算对加、减、乘封闭,直接使用组合数计算公式涉及到除法运算,运算过程中进行取模会导致错误,因此要使用到逆元概念:a^(p-2) ≡ 1/a (mod p),将除法转换成其他运算。 逆元概念和计算方式来源于费马小定理:如果p是质数,且整数a不是p的倍数,那么一定有a^(p−1) ≡ 1(mod p)。两边分别除以非p倍数的a即可得到逆元的计算公式。 有了逆元计算公式,则:*****)%MOD = n!/(m!*(n-m)!)%MOD,可以转换成 n!*(1/m!)%MOD*(1/(n-m)!)%MOD。除法变乘法,取余运算封闭。

    userId_undefined
    132****3022
    0阅读
    0回复
    0点赞
暂无数据

提交答案之后,这里将显示提交结果~

首页