
数学
菜菜魁
fighting!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
拓展欧几里得算法
已知 a,b 求 一组解 x,y 满足 ax+by = gcd(a, b) 这个公式#include<cstdio>typedef long long LL;void extend_Eulid(LL a, LL b, LL &x, LL &y, LL &d){ if (!b) {d = a, x = 1, y = 0;} else{ ...原创 2018-08-05 15:40:39 · 162 阅读 · 0 评论 -
母函数
有1克、2克、3克、4克的砝码各一枚,能称出哪几种重量?每种重量各有几种可能方案?假如x的幂次数表示几克的砝码那么1克的砝码表示为1+x^12克的砝码表示为1+x^23克的砝码表示为1+x^34克的砝码表示为1+x^4 每个砝码都可以选择取或不取所以这里的1可以认为1*x^0,表示不取这颗砝码 那么把这些乘起来(1+x^1)(1+x^2)(1+x^3...原创 2018-08-07 12:20:30 · 155 阅读 · 0 评论 -
容斥原理
在计数时,必须注意没有重复,没有遗漏。为了使重叠部分不被重复计算,人们研究出一种新的计数方法。这种方法的基本思想是:先不考虑重叠的情况,把包含于某内容中的所有对象的数目先计算出来,然后再把计数时重复计算的数目排斥出去,使得计算的结果既无遗漏又无重复。这种计数的方法称为容斥原理。三个集合的容斥原理: 设A, B, C是三个有限集合那么|A + B + C| = |A| +...原创 2018-08-06 18:22:44 · 317 阅读 · 0 评论 -
康托展开
代码如下:void cantor(int s[], LL num, int k){//康托展开,把一个数字num展开成一个数组s,k是数组长度 int t; bool h[k];//0到k-1,表示是否出现过 memset(h, 0, sizeof(h)); for(int i = 0; i < k; i ++){ t = n...原创 2018-08-06 17:59:21 · 161 阅读 · 0 评论 -
卢卡斯定理(解决大组合数)
现在来了新问题,如果n和m很大呢,比如求C(n, m) % p , n<=1e18,m<=1e18,p<=1e5看到没有,n和m这么大,但是p却很小,我们要利用这个p上帝说要有光,于是便有了光。卢卡斯说要有C(n, m) % p = C(n / p, m / p) * C(n%p, m%p) % p于是便有了大组合数有解。代码如下:LL...原创 2018-08-06 16:40:33 · 278 阅读 · 0 评论 -
中国剩余定理(孙子定理)
参考自:http://www.cnblogs.com/linyujun/p/5199415.html,不是因为我偷懒,是因为巨人已经撑起了肩膀。中国剩余定理,又名孙子定理能求解什么问题呢?问题:一堆物品3个3个分剩2个5个5个分剩3个7个7个分剩2个问这个物品有多少个 解这题,我们需要构造一个答案我们需要构造这个答案5*7*inv(5*7, 3) ...原创 2018-08-06 12:11:33 · 328 阅读 · 0 评论 -
组合数(杨辉三角)
原来组合数和杨辉三角是有关系的:杨辉三角上的每一个数字都等于它的左上方和右上方的和(除了边界) 第n行,第m个就是,就是C(n, m) (从0开始)所以以后求杨辉三角或者组合数都可以用到下面的递推公式:#include<cstdio>const int N = 2000 + 5;const int MOD = (int)1e9 + 7;int com...原创 2018-08-06 10:31:35 · 4864 阅读 · 0 评论 -
欧拉函数
欧拉函数怎么求呢?原谅我不会。。。我只知道有个速度很快的打表算法和求单个的算法,代码如下:单个://欧拉函数int phi(int x){ int ans = x; for(int i = 2; i*i <= x; i++){ if(x % i == 0){ ans = ans / i * (i-1); ...原创 2018-08-05 17:13:07 · 231 阅读 · 0 评论 -
数论四大定理
1.威尔逊定理:当且仅当p为素数时:( p -1 )! ≡ p-1 ( mod p )即若p为质数,则p能被(p-1)!+1整除 2.欧拉定理:欧拉定理:也称费马-欧拉定理若n,a为正整数,且n,a互质,即gcd(a,n) = 1,则a^φ(n) ≡ 1 (mod n)φ(n) 是欧拉函数: 欧拉函数是求 1到n-1 中 与n互质的数 的数目如果n是质数,那么...原创 2018-08-05 16:19:47 · 4235 阅读 · 0 评论 -
二项式反演公式
二项式反演公式 那个括号起来的就是组合数,我记得组合数那章我有说过所以来一道例题:设g(i)表示正好有i封信装错信封那么全部的C(n, i)*g(i)加起来正好就是所有装信的情况,总共n!种情况n! = Σ C(n, i)*g(i) (i从0到n)那么f(n) = n!,所以f(x) = x!那么我们要求g(n)根据公式 g(n) = Σ ...原创 2018-08-07 12:37:58 · 1507 阅读 · 0 评论