当前位置: 首页 > news >正文

(数论)Lucas定理

Lucas定理内容:对于素数p,有\binom{n}{m} mod p =  \binom{abs(n/p)}{abs(m/p)} * \binom{n mod p}{m mod p} mod p 

来看代码:

#include<bits/stdc++.h>

using namespace std;

typedef long long ll;

bool isprime(ll p){

    if(p<=1) return false;

    for(ll i=2;i<=sqrt(p);i++){

        if(p%i==0){

            return false;

        }

    }

    return true;

}

ll work(ll n,ll p){

    ll ans=1;

    for(int i=1;i<=n;i++){

        ans=ans*i%p;

    }

    return ans;

}

ll c(ll a,ll b,ll p){

    if(b>a){

        return 0;

    }

    return work(a,p)/work(b,p)/work(a-b,p);

}

ll lucas(ll a,ll b,ll p){

    if(!isprime(p)){

        cout<<"p is not a prime"<<endl;

        return 0;

    }

    if(!b){

        return 1;

    }

    return c(a%p,b%p,p)*lucas(a/p,b/p,p)%p;

}

int main(){

    ll ans=lucas(10,3,7);

    cout<<ans;

    return 0;

}

http://www.xdnf.cn/news/90361.html

相关文章:

  • linux 手动触发崩溃
  • 多头注意力(Multi‑Head Attention)
  • 鸣潮赞妮技能机制解析 鸣潮赞妮配队推荐
  • 路由交换网络专题 | 第六章 | OSPF | BGP | BGP属性 | 防环机制
  • RS232借助 Profinet网关与调制解调器碰撞出的火花
  • 探秘云原生架构:概念、技术、设计与反模式深度解读
  • strlen参数不匹配编译报错处理
  • 前端做模糊查询(含AI版)
  • 操作系统——堆与栈详解:内存结构全面科普
  • 电商平台比价 API 接口,避免人工比价的低效与误差
  • Mellanox网卡qos设置
  • window如何关闭指定端口
  • 嵌入式人工智能应用-第三章 opencv操作8 图像特征之LBP特征 下
  • 【C++游戏引擎开发】第20篇:基于物理渲染(PBR)——辐射度量学
  • 如何一键提取多个 PPT 幻灯片中的备注到 TXT 记事本文件中
  • 爱普生FC-12M晶振在车载系统中广泛应用
  • Spring事件机制,如何使用Spring事件监听器
  • Vue 实例 VM 访问属性
  • 【MySQL】索引失效问题详解
  • STM32单片机入门学习——第46节: [14-1] WDG看门狗
  • 怎样用 esProc 提速主子表关联时的 EXISTS
  • 利用参考基因组fa和注释文件gff提取蛋白编码序列
  • 定义python中的函数和类
  • SVT-AV1编码器中的模块
  • 如何收集用户白屏/长时间无响应/接口超时问题
  • linux命令集
  • 来啦,烫,查询达梦表占用空间
  • SVT-AV1编码器初始化函数
  • Linux 系统监控基石:top 命令详解与实战指南
  • 华为仓颉编程语言基础概述