美文网首页
LUCAS(数论定理)

LUCAS(数论定理)

作者: _弓长_大人 | 来源:发表于2018-09-25 12:46 被阅读30次
image.png
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
typedef long long LL;
using namespace std;

LL exp_mod(LL a, LL b, LL p) {
    LL res = 1;
    while(b != 0) {
        if(b&1) res = (res * a) % p;
        a = (a*a) % p;
        b >>= 1;
    }
    return res;
}

LL Comb(LL a, LL b, LL p) {
    if(a < b)   return 0;
    if(a == b)  return 1;
    if(b > a - b)   b = a - b;

    LL ans = 1, ca = 1, cb = 1;
    for(LL i = 0; i < b; ++i) {
        ca = (ca * (a - i))%p;
        cb = (cb * (b - i))%p;
    }
    ans = (ca*exp_mod(cb, p - 2, p)) % p;
    return ans;
}

LL Lucas(int n, int m, int p) {
     LL ans = 1;

     while(n&&m&&ans) {
        ans = (ans*Comb(n%p, m%p, p)) % p;
        n /= p;
        m /= p;
     }
     return ans;
}

int main() {
    //Read();
    int n, m, p;
    while(~scanf("%d%d%d", &n, &m, &p)) {
        printf("%lld\n", Lucas(n, m, p));
    }
    return 0;
}

相关文章

  • LUCAS(数论定理)

  • Lucas定理

    [图片上传失败...(image-139989-1517648456435)]我们还能对 继续调用Lucas定理。

  • 组合数 模板

    Lucas定理 mod小于10^5 逆元求组合数

  • Python解中国剩余定理(孙子定理)

    中国剩余定理(Chinese Remainder Theorem,CRT)又称孙子定理,是数论中的一个定理。古典数...

  • 代数数论:孙子定理

    学一点新东西 中国剩余定理 也就是同余方程组的可解性问题,这个问题是很有实践意义的。去超市买了一些鸡蛋,只记得不超...

  • 2019-04-09

    今日打卡 1、收获 今天第一节课是初等数论。今天我们讲的是小费马定理和大费马定理。一开始我们对这些理定理,不是非常...

  • 产品经理数学课(3)

    关键词:剩余,同余定理,数论,hash 参考:杨迎球,中国剩余定理与同余式组,[D]安顺学院数学与计算机科学系,2...

  • 2020-01-22(学习笔记附录)

    数论概论 同余式、幂与费马小定理 费马小定理:p为质数,a除以p不为0,则a^(p-1) 除以p余1 欧拉公式:若...

  • 大数组合取模,Lucas定理,费马小定理的运用

    从一个例题:【HDU 3037】 Saving Beans 来开始Lucas定理的应用。题目大意为:松鼠要从n棵树...

  • 自学Python:验证四方定理

    四方定理是什么? “四方定理”是数论中著名的一个定理,指所有自然数至多只要用四个数的平方和就可以表示。 例如:99...

网友评论

      本文标题:LUCAS(数论定理)

      本文链接:https://www.haomeiwen.com/subject/gfgbrxtx.html