数论
不想悲伤到天明
这个作者很懒,什么都没留下…
展开
-
数论基础 1
1.欧几里得算法(辗转相除法)递归写法:int gcd(int a,int b){ if(b == 0) return a; else return gcd(b,a%b);}更简洁的写法:int gcd(int a,int b){ return b?gcd(b,a%b):a;}扩展:求最大公倍数 lcmlcm(a,b) = (a*b)/g...原创 2018-08-01 14:26:42 · 253 阅读 · 0 评论 -
约数及反素数
定义: 若整数n除以整数d的余数是0,即d能整除 n ,则称 d 是 n 的约数, n是d的倍数,记为 d|n 。算数基本定理的推论 若正整数 N 被分解为 , 其中 ci 都是正整数, pi 都是质数 . N 的正约数集合可以写作: {} , 0<=bi <= ci ; N 的正约数个数为 : ...原创 2019-06-03 20:04:20 · 337 阅读 · 0 评论 -
Stirling公式 求n! 的位数
Stirling 公式即:Stirling公式的意义在于:当n足够大时,n!计算起来十分困难,虽然有很多关于n!的等式,但并不能很好地对阶乘结果进行估计,尤其是n很大之后,误差将会非常大。但利用Stirling公式可以将阶乘转化成幂函数,使得阶乘的结果得以更好的估计。而且n越大,估计得越准确。利用Stirling公式求解n!的位数:易知整数n的位数为[lgn]+1。利用St...原创 2019-03-22 19:49:02 · 417 阅读 · 0 评论 -
常用的素数筛选和欧拉函数模板
int phi[MAX] ; // 欧拉函数bool Prime[MAX];// 判断是否是素数int fac[MAX] ;// 按照顺序保存的素数int prime[MAX] ; // 按照顺序保存的素数int euler(int n ){ // 求 φ(n) int cnt = 0 ; int ans = n ; for(int i = 2 ; i*i <=n ; ...原创 2019-03-22 10:43:03 · 197 阅读 · 0 评论 -
欧拉函数
欧拉函数 欧拉函数φ 是数论中的一个重要函数, 设n 是正整数, φ(n) 表示的是0 ~ n-1 中与n互素的数的个数 . 比如 φ(12) = 4 , 因为 0 ~ 11 中 与12互素 gcd(a,b) = 1 的数有 1 , 5 , 7 , 11 . 这里φ(1) = 1 通式 : 其中p1, p2……pn为x的所有质因...原创 2019-03-21 22:15:31 · 1808 阅读 · 0 评论 -
卢卡斯定理
Lucas 定理概述:Lucas定理是用来求 c(n,m) mod p,p为素数的值。对于C(n, m) mod p。这里的n,m,p(p为素数)都很大的情况。就不能再用C(n, m) = C(n - 1,m) + C(n - 1, m - 1)的公式递推了。应用:大组合数求模表达式C(n,m)%p=C(n/p,m/p)*C(n%p,m%p)%p 已知gcd(a, p) =...原创 2019-02-21 18:00:13 · 1022 阅读 · 0 评论 -
Polya定理
在着色问题上常常用到Polya 定理来解决计数问题,是组合数学的基本定理之一 . 首先先引入置换群 , 设 S = { 1,2,3...n} , S 上的任何双射函数 : S -> S 称为 S 上的 n 元置换 . 可以表示成这样. 设 是 S = {1,2,3 .... . n } 上的n元置换 . 若 (i1) ...原创 2019-01-23 17:28:21 · 11236 阅读 · 0 评论 -
素数的埃式筛选法
const int N = 1e7 ;int prime[N] ; // 第i 个素数bool is_prime[N];int sieve(int n ){ int cnt = 0 ; for(int i = 0 ; i<=n+1 ;i++){ is_prime[i] = true; } is_prime[0] = is_prime[1] = false ; for(i...原创 2018-06-08 21:14:13 · 313 阅读 · 0 评论 -
小凯的疑惑
题目描述小凯手中有两种面值的金币,两种面值均为正整数且彼此互素。每种金币小凯都有无数个。在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的。现在小凯想知道在无法准确支付的物品中,最贵的价值是多少金币?注意:输入数据保证存在小凯无法准确支付的商品。输入描述:输入数据仅一行,包含两个正整数 a 和 b,它们之间用一个空格隔开,表示小凯手中金币的面值。输出描述:输...原创 2019-01-11 21:46:19 · 482 阅读 · 0 评论 -
组合数
转载 : https://www.cnblogs.com/linyujun/p/5194189.html组合数并不陌生(´・ω・`)我们都学过组合数 会求组合数吗 一般我们用杨辉三角性质杨辉三角上的每一个数字都等于它的左上方和右上方的和(除了边界) 第n行,第m个就是,就是C(n, m) (从0开始) 电脑上我们就开一个数组保存,像这样 ...转载 2018-10-21 20:07:00 · 128 阅读 · 0 评论 -
欧拉降幂公式
欧拉定理如果正整数a , n 互质 gcd(a,n) = 1 , 则, 其中是欧拉函数。推论 :如果正整数 a, n 互质 ,则 对于任意正整数 b , 有.降幂公式模板题 :点击#include <iostream>#include <cstdio>#include <cstring>usin...原创 2019-08-19 22:45:01 · 3813 阅读 · 0 评论