—————组合数学—————
Alex_McAvoy
想要成为渔夫的猎手
展开
-
组合数学 —— 母函数
【概述】某个序列的母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。给定数列,构造一个函数,称 F(x) 为数列的母函数,其中,序列只作为标志用,称为标志函数。标志函数最重要的形式是,这种情况下的母函数一般形式为:例如:就是序列 的母函数也就是说,可以利用来讨论序列的性质,此外还可以引入适当的函数,将问题简化,把复杂的问题变成形式上的初等...原创 2018-08-04 12:15:33 · 4767 阅读 · 1 评论 -
组合数学 —— 组合数取模
【概述】组合数取模,即计算组合数 ,由于,同余定理对除法不适用,因此需要使用别的方法来解决这个问题常见的方法有:使用逆元对组合数取模、递推打表取模、卢卡斯定理、扩展卢卡斯定理等,这些方法应用的场景各不相同。使用逆元:要求 p 是质数,时间复杂度 O(n) 递推打表:要求 n、m 不大于 10000,时间复杂度 O(n^2) 卢卡斯定理:要求 p 是质数,且 m、n 很大但 p 很...原创 2019-05-05 15:30:29 · 750 阅读 · 0 评论 -
组合数学 —— 组合数
【概念】1.组合从 n 个元素的集合 S 中,无序的选出 r 个元素,叫做 S 的一个 r 组合。如果两个组合中,至少有一个元素不同,它们就被认为是不同的组合。2.不可重组合数所有不同组合的个数,叫做组合数,记作:或由于每一种组合都可以扩展到 r!种排列,而总排列为 A(n,r) ,所以组合数特别的,C(n,0)=13.可重复组合数从 n 个不同的元素中,无...原创 2019-03-23 16:36:39 · 8981 阅读 · 0 评论 -
组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理
【卢卡斯定理】1.要求:p 是质数,m、n 很大但 p 很小 或者 n、m 不大但大于 p2.定理内容 其中,3.推论当将 n 写成 p 进制:,将 m 写成 p 进制:时,有:4.实现代码实现可简单理解为:LL fac[N];void getFac(){//构造阶乘 fac[0]=1; for(int i=1;i<1000000...原创 2019-03-23 16:31:51 · 644 阅读 · 0 评论 -
组合数学 —— 容斥定理
【概述】容斥原理是一种较常用的计数方法,其基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复。容斥原理核心的计数规则可以记为一句话:奇加偶减假设被计数的有 A、B、C 三类,那么,A、B、C 类元素个数总和 = A 类元素个数 + B类元素个数 + C类元素个数 - 既是 A 又是 B 的元素...原创 2018-08-13 17:31:34 · 7393 阅读 · 0 评论 -
组合数学 —— 概述
【概述】组合数学是研究组合与排列问题,其中计数原理、容斥原理、求排列数、求组合数等经常被使用。【理论相关】基本计数原理:点击这里 容斥原理:点击这里 排列数:点击这里 组合数:点击这里 组合数取模:点击这里 卡特兰数列(Catalan):点击这里 斯特林数(Stirling):点击这里 母函数:点击这里...原创 2019-02-13 23:26:27 · 1850 阅读 · 0 评论 -
组合数学 —— 斯特林数(Stirling)
【第一类斯特林数】1.定理第一类斯特林数 S1(n,m) 表示的是将 n 个不同元素构成 m 个圆排列的数目。2.递推式设人被标上1,2,.....p,则将这 p 个人排成 m个圆有两种情况:在一个圆圈里只有标号为 p 的人自己,排法有 S1(n-1,m-1) 个。 p 至少和另一个人在一个圆圈里。这些排法通过把 1,2....n-1 排成 m 个圆再把 n 放在 1,2...原创 2018-04-25 19:02:00 · 21010 阅读 · 6 评论 -
组合数学 —— 卡特兰数列(Catalan)
【概述】卡特兰数列是组合数学中一个常出现在各种计数问题中出现的数列,其前几项为 : 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, ......卡特兰数首先是由欧拉在计算对凸 n 边形的不同的对角三角形剖分的个数问题时得到的,即在一个凸 n 边形中,通过不相交于 n 边形内部的对角线,把 n 边形拆分成若干三角...原创 2018-04-24 22:42:58 · 3461 阅读 · 0 评论 -
组合数学 —— 排列数
【概念】从 n 个元素的集合 S 中,有序的选出 r 个元素,叫做 S 的一个 r 排列,不同的排列总数记作:或如果两个排列所含元素不全相同,或所含元素相同但顺序不同,就会被认为是不同的排列。【可重排列】从 n 个不同元素可重复的取出 m个元素,按照一定顺序排成一列,叫做相异元素可重复排列。相异元素可重复排列的方案数为:例如:从1、2、3、4、5 中任取三个出来组成...原创 2018-08-02 21:33:22 · 8742 阅读 · 0 评论 -
组合数学 —— 基本计数原理
【抽屉原理】1.内容把 n+1 件东西放入 n 个抽屉,则至少有一个抽屉里放两件或两件以上的东西。从令一角度说,把 n-1 件东西放入 n 个抽屉,则至少一个抽屉是空的。2.经典应用给出一个含有 n 个数字的序列,要找一个连续的子序列,使他们的和一定是 c 的倍数假设 sum[i] 存储整数序列中的前 i 项和根据抽屉原理,以 sum 数组构造抽屉 drawer 数组...原创 2018-08-02 17:31:11 · 2580 阅读 · 0 评论 -
组合数学 —— 组合数取模 —— 逆元与递推打表
【逆元求法】1.要求:p 是质数2.时间复杂度:O(n)3.求解的步骤:1)通过循环,预先算好所有小于 N 的阶乘(%p)的结果,存到数组 fac[] 中(fac[i] = i!%p)2)求 的逆元(即求 fac[m] 的逆元),根据费马小定理,x%p 的逆元为,通过快速幂,求解 ,记为 M3)求的逆元:同上,即求解4)通过逆元计算组合数,即:4.实...原创 2018-08-05 19:00:57 · 1678 阅读 · 0 评论 -
组合数学 —— 康托展开
【概述】康托展开是一个全排列到一个自然数的双射,常用于构建哈希表时的空间压缩,在组合数学中,其解决的是当前排列在全排列中的名次问题。简单来说,给定一个 n 位数的全排列,可根据康托展开公式确定其应是字典序中的第几个排列。由于康托展开计算的是某个全排列方式在该全排列集合中的字典序,其映射关系是唯一的,而且单调,因此映射关系是可逆的,故而当给定一个全排列的所有字符,以及某个字典序编号,可以...原创 2019-08-13 11:08:57 · 914 阅读 · 0 评论