一、gcd lcm

基础中的基础,一般用来处理计算第一步什么的,分数化简之类。

LL gcd(LL a, LL b)
{  return b ? gcd(b, a % b) : a;
}
<pre name="code" class="cpp">LL lcm(LL a, LL b)
{LL c = gcd(a, b);return a / c * b;
}

例题:

hrbust 1178

hdu 2028 Lowest Common Multiple Plus

二、exgcd

通常用于解二元一次方程,线性同余方程组,高次同余方程组(babystep_giantstep)。

中国剩余定理。

void exgcd(LL a, LL b, LL& d, LL& x, LL& y)//ax + by = d, d = gcd(a, b)
{  if (b == 0)  {  d = a;  x = 1;  y = 0;  }  else  {  exgcd(b, a % b, d, y, x);  y -= x * (a / b);  }
}  

例题:

二元一次方程:

poj 1061 + poj 2115 + poj 2142

uva 10673 Play with Floor and Ceil

线性同余方程组:

poj 2891 Strange Way to Express Integers

hdu 1573

高次同余方程组:

poj 3243 poj 2417 hdu 2815

中国剩余定理:

poj 1006 Biorhythms

三、素数

也是第一步的处理。

例题:

hdu 2098 分拆素数和

poj 2689 Prime Distance  大素数

poj 1811 + poj 2429 (Miller_Rabin大素数测试 + Pollard_Rho大合数分解)

四、快速幂

普通快速幂和矩阵快速幂。

用于求比较大的数的幂次取模。

比较大小可以取对数。

例题:

快速幂:

uva 10006 Carmichael Numbers

poj 1995

矩阵快速幂:

poj 3233(矩阵快速幂)

hdu 3292 No more tricks, Mr Nanguo(矩阵快速幂解佩尔方程)

五、欧拉函数

小于一个数x且与x互素的数的个数,就是欧拉函数,保存在phi[x]中。

1.打表:

void phi_table()
{  for (int i = 2; i <= maxn; i++)  phi[i] = 0;  phi[1] = 1;  for (int i = 2; i <= maxn; i++)  {  if (!phi[i])  {  for (int j = i; j <= maxn; j += i)  {  if (!phi[j])  {  phi[j] = j;  }  phi[j] = phi[j] / i * (i - 1);  }  }  }
}  

2.O(n)解法:

int euler_phi(int n)
{  int m = sqrt(n + 0.5);  int res = n;  for (int i = 2; i <= m; i++)  {  if (n % i == 0)  {  res = res / i * (i - 1);  while (n % i == 0)  n /= i;  }  }  if (1 < n)  res = res / n * (n - 1);  return res;
}  

例题:

基础:

uva 10820 poj 2407 poj 1284 poj 2478 poj 3090

进阶:

poj 3696 + poj 3358

六、因子相关

因子和,因子个数和,积性函数。

例题:

uva 10791 Minimum Sum LCM(拆分素因子)

poj 1845 (因子和)

poj 2992 (因子个数和)

hdu 1452 (积性函数+因子和+乘法逆元)

poj 2480 (积性函数+素因子和)

七、fib与catalan

catalan:

h(n) = (4 * n - 2) / (n + 1) * h(n - 1)

经典的总结:http://www.cnblogs.com/wuyuegb2312/p/3016878.html

例题:

hdu 1023 Train Problem II

uva 10303 uva 991

fib:

通常的fib直接打个表或者乱搞一下。

但是fib有个扩展就是fib的矩阵形式,在要求fib比较大的情况下,直接用矩阵快速幂搞定。

⎡⎣⎢100111110⎤⎦⎥⎡⎣⎢Sn−1Fn−1Fn−2⎤⎦⎥=⎡⎣⎢SnFnFn−1⎤⎦⎥

例题:

uva 10229 (fib矩阵形式+矩阵快速幂)uva 10518 (fib(n)调用多少次)


八、概率论、组合数学

排列组合,贝叶斯公式、全概率公式。

例题:

uva 10105 uva 10910 uva 10943(排列组合C)

hdu 2048 and 2049(错排问题)

uva 19759 (Dp+概率)

uva 10900 (期望)

uva 10056(等比数列求和)

uva 11181(贝叶斯公式)

uva 10277 (概率论 + 暴力)

uva 10169 (概率+取小数点后0的位数)

九、java大数使用

uva 10183 uva 10519 uva 10516

十、数学问题+技巧

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

uva 11121 Base -2 (负进制计算)

uva 128 Software CRC(进制转换)

uva 106 Fermat vs. Pythagoras(勾股数求法)

uva 11029 Leading and Trailing(求n^k的前几位和后几位 证明)

poj 1091 跳蚤(n元一次不定方程+斥容原理)

uva 11027(康拓展开求序列|编码解码)

uva 10491 (广义三门问题)

poj 1695 (莫比乌斯反演)

十一、组合数学学习

1.排列组合:

Type Sample Order Counts? Rep? Numbers of ways
无重组合 从n个球中取r个 No No C(n,r)
无重排列 从n个人中找r个排队 Yes No P(n,r)
可重组合 从n种水果中选r个拼果篮 No Yes C(n + r - 1, r)
可重排列 n个字母组成的r位串 Yes Yes n ^ r
多重全排列 r1个a,r2个b组成的n位串 Yes Yes n! / (r1! r2!)


数论入门整理(updating)相关推荐

  1. 【小组专题一:数论入门:整数】数和序列 | 和与积 | 数学归纳与第二数学归纳

    数论入门:整数 [1.1 数和序列] 练习中的证明: [1.2 和与积] 课后练习: [1.3 数学归纳法] 课后练习(都用数学归纳或者第二数学归纳证明): ·|· 根据<初等数论及其应用> ...

  2. 和与余数的和同余理解_5 同余 ——数论入门知识讲解系列

    数学竞赛 数论是纯粹数学的分支之一,主要研究整数的性质,按研究方法分为初等数论和高等数论.中学生(甚至小学生)课外数学兴趣小组的许多内容是属于初等数论的,各级别数学竞赛也会把初等数论作为重点内容进行考 ...

  3. matlab狄利克雷函数,数论入门1——莫比乌斯函数,欧拉函数,狄利克雷卷积,线性筛,莫比乌斯反演,杜教筛...

    数论入门1 一个菜鸡对数论的一点点理解... 莫比乌斯函数 定义函数$\mu(n)$为: 当n有平方因子时,$\mu(n)=0$. 当n没有平方因子时,$\mu(n)=(-1)^{\omega(n)} ...

  4. 一个完整的区块链入门整理,良心推荐

    一个完整的区块链入门整理,良心推荐!!! 入门介绍与原理: 一.比特币 1.比特币白皮书 –来自百度网盘超级会员V8的分享 这是一切的开始 2.精通比特币 提取码:mj86 讲比特币很详细的一本书,看 ...

  5. ax在c语言中意思啊,【数论】整理关于ax+by=c

    整理关于 \(\rm{ax+by=c}\),遇到的一系列 在这里,\(x\) ,\(y\) 是变量,\(a,\;b,\;c\) 是常量 前置: 对于二元一次不定方程 \(ax+by=c\),有整数解的 ...

  6. 8、JDBC入门整理

    JDBC入门 l  导jar包:驱动! l  加载驱动类:Class.forName("类名"); l  给出url.username.password, l  使用DriverM ...

  7. Ubuntu+Pytorch开发入门整理——环境搭建

    最近在使用Ubuntu开发,但是在配置环境中的时候发现的确会有一些坑,比如nVidia的驱动,现在做一些资料整理. 安装方面,使用的是unetbootin制作的U盘,在电脑上进行安装,安装时候值得注意 ...

  8. 深度学习入门整理学习(二)

    深度学习入门 深度学习横跨矩阵论.概率论与数理统计.信息论.博弈论.最优化等理论,并融合机器学习.数据挖掘.大数据.人工智能等领域技术,是具有深度和广度的综合范例 数学基础 矩阵论 (1)正交矩阵 A ...

  9. 数论入门之青蛙的约会poj1061

    青蛙的约会POJ1061 前言 一.什么是扩展欧几里得? 1.欧几里得模板 2.扩展欧几里得模板 二.扩展欧几里得的简要证明 三.题解 四.题解代码 题意: 两只青蛙在网上相识了,它们聊得很开心,于是 ...

  10. 网络安全-数论入门-孙子定理(CRT)

    1. 简介 孙子定理是中国古代求解一次同余式组(见同余)的方法.是数论中一个重要定理.又称中国余数定理.一元线性同余方程组问题最早可见于中国南北朝时期(公元5世纪)的数学著作<孙子算经>卷 ...

最新文章

  1. 思科ssh验证方式_SSH的应用:一个实例两种验证模式的实现
  2. sentinel 官方文档_Sentinel控制台监控数据持久化到MySQL数据库
  3. openSAP中国新平台的介绍
  4. Winform中设置Dialog的显示位置居中
  5. 虚拟主机创建虚拟lan_创建虚拟背景应用
  6. leetcode 330. 按要求补齐数组(贪心算法)
  7. 如何修改emcp的sn号_百家号领域选择错误怎么办?百家号怎么更改领域?
  8. 帝国CMS二次元COS漫展信息分享网站模板
  9. #333. 【NOIP2017】宝藏
  10. 三个基于WebRTC开源MCU框架的横向对比
  11. svg 编辑器的点击事件兼容pc端和移动端方案
  12. unity中eulerAngles和rotation的区别
  13. 机器学习--西瓜书思维导图
  14. 解决 filezilla 连接服务器失败问题
  15. Presto常用语句整理
  16. win7台式计算机怎么连热点,win7热点怎么设置 win7热点设置的具体方法介绍
  17. 使用Aruino Ethernet使ESP32具有以太网通讯能力
  18. PDF文件怎么转PPT格式?不会的小伙伴快看过来
  19. FFplay文档解读-5-编解码器选项二
  20. 强推Windows资源管理器软件Clover,类似谷歌 Chrome 浏览器的多标签页

热门文章

  1. MyEclipse中SVN分支合并到主干
  2. 计算机简历如何写,简历计算机能力怎么写
  3. RTSP/GB28181/SDK/EHOME协议视频智能分析共享平台EasyCVR安防视频云服务新增智能人脸识别功能
  4. 20个Python实战项目(附源码),拿走就用。
  5. nodejs 下载最新版本
  6. 记录08_7.15~7.16
  7. 解决eeglab无法读取.mat文件(读取mat文件报错cannot read .mat file,eeglab error in function pop_editset()at line 445)
  8. JAVAweb之SSH框架
  9. 神州数码DCN交换机SNMP配置命令
  10. 永磁同步电机矢量控制(二)——控制原理与坐标变换推导