算法:数学知识
文章平均质量分 90
数学知识算法
wmy0217_
2023天天开心(♡˙︶˙♡)
展开
-
常见博弈论总结
文章目录巴什博弈斐波那契博弈尼姆博弈威佐夫博弈巴什博弈一堆个数为 n 的石子,两人轮流取石子,每次可拿 1 ~ m 颗,先取完者胜。分析:(1) 当 n ≤ m 时,先手可以一次拿完,先手赢(2) 当 n = m + 1 时,无论先手拿多少个,后手都能一次拿完,后手赢对上面两种情况拓展:(Ⅰ) 若 n % (m + 1) = 0,假如先手拿 k 个,后手都能拿 m + 1 - k 个, 使面对先手的格局永远都是 m + 1 的整数倍,直到最后为 m + 1,故后手赢(Ⅱ) 若 n % (m原创 2020-05-18 13:50:53 · 541 阅读 · 0 评论 -
容斥原理 数论
文章目录原理证明例题原理S1、S2 、S3 分别代表下图三个圆1、2、3的面积如果我们想求下面图形构成的面积,该怎么求呢,很简单S = S1 ∪ S2 ∪ S3=S1 + S2 + S3-S1 ∩ S2 - S1 ∩ S3 - S2 ∩ S3+S1 ∩ S2 ∩ S3拓展一下,如果是4个圆的面积应该是S =S1 ∪ S2 ∪ S3 ∪ S 4 =S1 + S2 + S3 + S4-S1 ∩ S2 - S1 ∩ S3 - S1 ∩ S4 - S2 ∩ S3 - S2 ∩ S4 - S3原创 2020-05-25 18:24:50 · 1454 阅读 · 0 评论 -
卡特兰数
文章目录题目解法卡特兰数推导代码题目给定 n 个 0 和 n 个 1,它们按照某种顺序拍成长度为 2n 的序列,求它们能排成的所有序列中,能够满足任意前缀序列 0 的个数都不少于 1 的个数的序列有多少个。答案对 109+7 取模。数据范围: 1≤n≤105解法(在下文叙述中,为了方便,满足题目要求的称为合法路径,不满足的称为不合法路径)将01序列转化到坐标系上:0 代表向右走一格1 代表向上走一格那么任意前缀序列 0 的个数都不少于 1 的个数的序列(合法路径),就可以转换为:路径上任原创 2020-05-23 16:05:05 · 301 阅读 · 0 评论 -
高斯消元解线性方程组
文章目录基础知识算法步骤举个例子模拟一下算法例题和代码基础知识高斯消元可以通过初等行列变化把 增广矩阵 转换成 阶梯型矩阵,进而求解 n 个线性方程组的解,其时间复杂为 O(n^3^)初等行列变换:(对一个方程组进行以下三个操作不会影响方程的解)把某一行乘一个非0的数(方程左右两边同乘)交换某两行的位置把某一行的若干倍加到另一行上例如线性方程组为:a11x1 + a12x2 + a13x3 + … + a1nxn = b1a21x1 + a22x2 + a23x3 + … + a2nx原创 2020-05-22 23:36:31 · 6223 阅读 · 1 评论 -
扩展欧几里得算法
文章目录欧几里得算法扩展欧几里得算法扩展欧几里得算法求线性同余方程欧几里得算法也叫辗转相除法,用于求两个数的最大公约数int gcd(int a,int b){ return b ? gcd(b, a % b) : a; } b为 0 时,最大公约数就是a,0可以整除任何数不为 0 时,最大公约数就是gcd(b, a % b)扩展欧几里得算法AcWing 877. 扩展欧几里得算法扩展欧几里得算法用于求解方程 ax + by = gcd(a,b) 的解 x 和 y① 当原创 2020-05-11 12:22:13 · 243 阅读 · 0 评论 -
求组合数算法总结
文章目录组合数概念求组合数Ⅰ求组合数Ⅱ求组合数Ⅲ求组合数Ⅳ组合数概念C(a,b) = a!b!(a−b)!\frac{a!}{b!(a-b)!}b!(a−b)!a! = a∗(a−1)∗(a−2)∗....∗(a−b+1)b!\frac{a * (a-1)*(a-2)*....*(a-b+1)}{b!}b!a∗(a−1)∗(a−2)∗....∗(a−b+1) C(a,0) = 1意...原创 2020-04-18 22:29:46 · 1517 阅读 · 0 评论 -
快速幂 c++
快速幂就是快速算底数的n次幂。其时间复杂度为 O(log₂N), 与朴素的O(N)相比效率有了极大的提高。来想想我们之前是怎么求一个数的 k 次幂的,比如220,是用一个for循环来实现的,我们要循环 20 次才能求出它,这个还看不出什么问题,可如果是求21e9,我们岂不是要循环1e9次,这个时间复杂度太高了,所以,我们需要通过快速幂来求。原理:我们这里以 211 为例,a11 = a...原创 2020-04-02 19:21:39 · 3490 阅读 · 1 评论 -
欧拉函数 数论
在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(因此φ(1)=1)。互质是公约数只有1的两个整数,叫做互质整数。函数内容:n 分解质因数后:n=p1a1 * p2a2 * p3a3 … pkak,(其中 pi 为质数)那么 φ(n) = n * (1 - 1/p1) * (1 - 1/p2) *… *(1 - 1/pk)函数证明:我们知道,1~n 个数中有 \f...原创 2020-03-30 22:39:32 · 851 阅读 · 1 评论 -
约数个数、约数之和、约数
文章目录试除法求一个数的所有约数求约数个数求约数之和欧几里得算法试除法求一个数的所有约数vector<int> get_divisors(int n) //求n的约数 { vector<int> res; for(int i=1; i<=n/i; i++) if(n%i == 0) { res.push_back(i); ...原创 2020-03-29 12:05:43 · 1115 阅读 · 2 评论 -
埃式筛法、欧拉筛法
文章目录埃氏筛法埃氏筛法![在这里插入代码片](https://img-blog.csdnimg.cn/20200328171125402.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dteTAyMTdf,size_16,color...原创 2020-03-28 21:22:35 · 1004 阅读 · 1 评论 -
判断质数、分解质因数
文章目录什么是质数、合数判断质数分解质因数什么是质数、合数质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,质数也叫素数。与质数相对的是合数,合数是指在大于1的整数中除了能被1和本身整除外,还能被其他数整除的数。判断质数bool is_prime(int n){ if(n < 2) return false; for(int i=2; i<=n/i;...原创 2020-03-24 20:25:42 · 1240 阅读 · 2 评论