热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

组合数学中的常见定理&组合数的计算&取模

组合数的性质:C(n,m)C(n,n-m);C(n,m)n!(m!(n-m)!);组合数的递推公式:C(n,m)C(n-1,m-1)+C(n-1,m);

 

组合数的性质:

C(n,m)=C(n,n-m);

C(n,m)=n!/(m!(n-m)!);

组合数性质

组合数的递推公式:


C(n,m)=  C(n-1,m-1)+C(n-1,m);

 

组合数一般数值较大,题目会要求取模;而求组合数的过程中一般会用到除法,所以会涉及除法取模的知识;

在除法取模的过程中,一般会求一个乘法逆元;

乘法逆元的定义:满足a*k≡1 (mod p)的k值就是a关于p的乘法逆元;

求乘法逆元的方法:

(b/a)modp;(a|b)p为质数;

1.欧拉定理或者费马小定理:

  费马小定理是欧拉定理的特殊情况;

  费马小定理的定义及证明:链接

    由得b/a=(b/a)*(ap-1modp)=b/a*ap-1modp=b*ap-2modp;

    除法就被消去了;

    而这样做还有一个问题就是p-2一般很大,(因为p一般都取1e9+7,NND,我记得有次BC的题是1e8+7直接把我坑惨了);这时就用快速幂求啦;

    附上快速幂的模板:

    

ll fsat_pow(ll a,ll b)
{
    ll s=1,base=a;
    while(b)
    {
        if(b&1)
        {
            s*=base;
            s%=mod;
        }
        base*=base;
        base%=mod;
        b=(b>>1);
    }
    return s;
}

 

 

2.扩展欧几里得算法:

 

 

当n,m都很大不能一个一个数相乘得到时,这时就需要Lucas定理了;(有心情有时间再来写)

 


推荐阅读
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 深入解析:手把手教你构建决策树算法
    本文详细介绍了机器学习中广泛应用的决策树算法,通过天气数据集的实例演示了ID3和CART算法的手动推导过程。文章长度约2000字,建议阅读时间5分钟。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了如何使用Spring Boot进行高效开发,涵盖了配置、实例化容器以及核心注解的使用方法。 ... [详细]
  • Java内存管理与优化:自动与手动释放策略
    本文深入探讨了Java中的内存管理机制,包括自动垃圾回收和手动释放内存的方法。通过理解这些机制,开发者可以更好地优化程序性能并避免内存泄漏。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 2023年京东Android面试真题解析与经验分享
    本文由一位拥有6年Android开发经验的工程师撰写,详细解析了京东面试中常见的技术问题。涵盖引用传递、Handler机制、ListView优化、多线程控制及ANR处理等核心知识点。 ... [详细]
  • 深入浅出:Google工程师的算法学习指南
    通过Google工程师的专业视角,带你系统掌握算法的核心概念与实践技巧。 ... [详细]
  • 本文深入探讨了 Python 列表切片的基本概念和实际应用,通过具体示例展示了不同切片方式的使用方法及其背后的逻辑。 ... [详细]
  • 本文详细介绍了K-Medoids聚类算法,这是一种基于划分的聚类方法,适用于处理大规模数据集。文章探讨了其优点、缺点以及具体实现步骤,并通过实例进行说明。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • 精选30本C# ASP.NET SQL中文PDF电子书合集
    欢迎订阅我们的技术博客,获取更多关于C#、ASP.NET和SQL的最新资讯和资源。 ... [详细]
author-avatar
mobiledu2502905163
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有