数学知识
CSDN729180099
这个作者很懒,什么都没留下…
展开
-
数学知识——博弈论
1. NIM游戏定义给定N堆物品,第i堆物品有Ai个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采取最优策略,问先手是否必胜。我们把这种游戏称为NIM博弈。把游戏过程中面临的状态称为局面。整局游戏第一个行动的称为先手,第二个行动的称为后手。若在某一局面下无论采取何种行动,都会输掉游戏,则称该局面必败。所谓采取最优策略是指,若在某一局面下存在某种行动,使得行动后对面面临必败局面,则优先采取该行动。同时,这样的局面被称为必胜。我们讨论的博原创 2020-11-20 23:42:48 · 748 阅读 · 0 评论 -
数学知识——容斥原理
容斥原理|AUBUC| = |A| + |B| + |C| - |A∩B| - |A∩C| - |B∩C| + |A∩B∩C||A|表示集合A中元素的个数推广:例题:能被整除的数给定一个整数n和m个不同的质数p1,p2,…,pm。请你求出1~ n中能被p1,p2,…,pm中的至少一个数整除的整数有多少个。输入格式第一行包含整数n和m。第二行包含m个质数。输出格式输出一个整数,表示满足条件的整数的个数。数据范围1≤m≤16,1≤n,pi≤109输入样例:10 22 .原创 2020-11-19 23:31:46 · 353 阅读 · 0 评论 -
数学知识——求组合数(四种方法)
递推法例题:求组合数Ⅰ给定n组询问,每组询问给定两个整数a,b,请你输出Cab mod (109+7)的值。输入格式第一行包含整数n。接下来n行,每行包含一组a和b。输出格式共n行,每行输出一个询问的解。数据范围1≤n≤10000,1≤b≤a≤2000输入样例:33 15 32 2输出样例:3101#include <iostream>#include <algorithm>using namespace std;const in.原创 2020-11-15 00:28:15 · 3561 阅读 · 0 评论 -
数学知识——高斯消元
算法用途求解多元线性方程组算法思路模拟线性代数中把系数矩阵从一般型化成最简型的过程具体步骤枚举每一列c1)找到绝对值最大的一行2)将该行换到最上面3)将该行的第一个数变成14)把下面所有行的第c列消成0判断最终方程的个数和未知数的个数是否相等,如果不相等,且推出矛盾则无解,否则有无穷解。如果相等则有唯一解。有唯一解时从最后一行将值带到上面的行求出所有解例题:高斯消元解线性方程组输入一个包含n个方程n个未知数的线性方程组。方程组中的系数为实数。求解这个方程组。..原创 2020-11-14 11:24:19 · 185 阅读 · 0 评论 -
数学知识——中国剩余定理
用途及解法所以只要求出Mi的逆元就可以求解方程组可以由前面的快速幂求逆元或者用线性同余方程的特殊情况求解2. 例题 : 表达整数的奇怪方式给定 2n 个整数a1,a2,…,an和m1,m2,…,mn,求一个最小的非负整数 x,满足∀i∈[1,n],x≡mi(mod ai)。输入格式第1 行包含整数 n。第 2…n+1行:每 i+1 行包含两个整数ai和mi,数之间用空格隔开。输出格式输出最小非负整数 x,如果 x 不存在,则输出 −1。如果存在 x,则数据保证 x 一定在64位整数.原创 2020-11-14 09:59:49 · 210 阅读 · 0 评论 -
数学知识——扩展欧几里得算法
1. 用途由裴蜀定理知:给予二整数 a 与 b, 必存在有整数 x 与 y 使得ax + by = gcd(a,b), 扩展欧几里得算法可以计算出ax + by = gcd(a, b)的一个解2. 算法原理——递归3. 例题给定n对正整数ai,bi,对于每对数,求出一组xi,yi,使其满足ai∗xi+bi∗yi=gcd(ai,bi)。输入格式第一行包含整数n。接下来n行,每行包含两个整数ai,bi。输出格式输出共n行,对于每组ai,bi,求出一组满足条件的xi,yi,每组结果占一行。本题原创 2020-11-07 19:09:27 · 167 阅读 · 0 评论 -
数学知识——欧拉函数
1. 欧拉函数定义:欧拉函数ψ(n) 表示1~n中与n互质的数的个数公式:如果一个数可以被分解质因式为N = p1α1 *p2α2……pkαk则ψ(n) = n(1 - 1/p1)(1 - 1/p2)…(1 - 1/pk)公式由容斥原理证明,证明略算法实现思路: 利用求一个数的质因数的方法,结合公式求解时间复杂度:O(√n)例题:给定n个正整数ai,请你求出每个数的欧拉函数。欧拉函数的定义1 ~ N 中与 N 互质的数的个数被称为欧拉函数,记为ϕ(N)。若在算数基本定理中,N=p1a1p原创 2020-11-02 23:29:36 · 2283 阅读 · 1 评论 -
数学知识——约数
1. 求一个数的约数——试除法算法原理:从1~n依次枚举所有的数,判断是否可以被n整除优化:因为约数是成对出现的,所以每次只需要枚举较小的那一个较大的那一个就可以算出来,所以只需要枚举到√n时间复杂度:O(√n)例题: 给定n个正整数ai,对于每个整数ai,请你按照从小到大的顺序输出它的所有约数。输入格式第一行包含整数n。接下来n行,每行包含一个整数ai。输出格式输出共n行,其中第 i 行输出第 i 个整数ai的所有约数。数据范围1≤n≤100,2≤ai≤2∗109输入样例:2原创 2020-11-01 12:54:58 · 595 阅读 · 0 评论 -
数学知识——质数
1. 质数的判定——试除法算法思路:根据质数的定义暴力枚举,因为一个数的约数是成对出现的,所以只用枚举到√n时间复杂度:O(sqrt(n))例题: 给定n个正整数ai,判定每个数是否是质数。输入格式第一行包含整数n。接下来n行,每行包含一个正整数ai。输出格式共n行,其中第 i 行输出第 i 个正整数ai是否为质数,是则输出“Yes”,否则输出“No”。数据范围1≤n≤100,1≤ai≤2∗109输入样例:226输出样例:YesNo#include<iostrea原创 2020-10-31 08:47:14 · 462 阅读 · 0 评论 -
数学知识——快速幂
1. 快速幂的用途在O(logn)的时间复杂度下求出akmod p d的结果(1<= a, p, k<=109)2. 算法原理反复平方法:3. 例题: 给定n组ai,bi,pi,对于每组数据,求出aibi mod pi的值。输入格式第一行包含整数n。接下来n行,每行包含三个整数ai,bi,pi。输出格式对于每组数据,输出一个结果,表示aibi mod pi的值。每个结果占一行。数据范围1≤n≤100000,1≤ai,bi,pi≤2∗109输入样例:23 2 5原创 2020-11-06 21:53:13 · 593 阅读 · 0 评论