ACM中的数学问题.pptVIP

  • 26
  • 0
  • 约1.12万字
  • 约 97页
  • 2017-08-25 发布于重庆
  • 举报
ACM中的数学问题.ppt

ACM中的数学问题 北京大学ACM竞赛队队员 林舒 引言 在ACM竞赛中,经常可以看到数学问题的身影 可以是纯数学问题,也可以是需要利用数学上的一些公式,定理,算法来辅助解决的问题 会者不难,而不会的选手在赛场上一般很难推出公式或进行证明 往往想起来费劲,写起来却很轻松 常见的数学问题 数论 组合数学 博弈论 线性代数 高等数学 线性规划 概率统计 ... 本讲内容 简单数论 Polya定理 SG函数 与矩阵有关的问题 本讲内容 基本上是最基础的,同时也是ACM竞赛中最常见的数学问题 对一些数学公式,定理进行简略地推导或证明,从而加深对它们的理解和认识,也方便记忆 往届ACM竞赛中的数学问题 数论 简而言之,数论就是研究整数的理论 在ACM竞赛中,经常用到数论的相关知识 纯数论的题目不多,大部分是和其他类型的问题结合起来的 约数,倍数,模线性方程,欧拉定理,素数 数论的历史 自古以来,许许多多的数学家研究过与数论有关的问题 直到十九世纪,数论才真正形成了一门独立的学科 数论是一门高度抽象的学科,长期处于纯理论研究的状态,曾经被认为是很难有应用价值的 随着计算机科学的发展,数论得到了广泛的应用 数论主要内容 第一部分:同余相关 整除的性质-欧几里德算法 -扩展欧几里德算法-中国剩余定理 第二部分:素数相关 算术基本定理-欧拉定理 -素数测试- Pollard rho方法 第一部分 同余相关 整除的性质 欧几里德算法 扩展欧几里德算法 中国剩余定理 整除的性质 性质1 a|b,b|c = a|c 性质2 a|b = a|bc 性质3 a|b,a|c = a|kb±lc 性质4 a|b,b|a = a=±b 性质5 a=kb±c = a,b的公因数与b,c的公因数完全相同 整除的性质 性质5 a=kb±c = a,b的公因数与b,c的公因数完全相同 利用性质3(a|b,a|c = a|kb±lc)证明: 对于任意的a,b的公因数d a=kb±c = c=±(a-kb) = d|c 最大公约数 最小公倍数 求最大公约数:欧几里德算法(辗转相除法,短除法) 原理:若a≡r(mod b),则gcd(a,b)=gcd(b,r) 可利用性质5(a=kb±c = a,b的公因数与b,c的公因数完全相同)证明 最小公倍数:lcm(a,b)=a*b/gcd(a,b) 欧几里德算法 欧几里德算法: while b0 do r←a%b a←b b←r return a 欧几里德算法 欧几里德算法是计算最大公约数的传统算法,也是最简单的算法,效率很高 时间复杂度:O(lgn)(最坏情况:斐波那契数列相邻的两项) 空间复杂度:O(1) 但是,对于大整数来说,取模运算非常耗时 Stein算法 另一种算法:Stein算法 渐近时间,空间复杂度均与欧几里德算法相同 原理:gcd(ka,kb)=k*gcd(a,b) 最大特点:只有移位和加减法计算,避免了大整数的取模运算 Stein算法 Stein算法(假设0=ba): r←0 while b0 do if a偶,b偶 then a←a1 b←b1 r←r+1 else if a偶,b奇 then a←a1 else if a奇,b偶 then b←b1 else if a奇,b奇 then a←(a-b)1 if ab then 交换a,b return ar 解二元模线性方程 二元模线性方程(二元一次不定方程):形如ax≡c(mod b)或ax+by=c 其中a,b,c,x,y均为整数 扩展欧几里德算法 原理: 令d=gcd(a,b),原方程有整数解当且仅当d|c bx+(a%b)y=1 = ay+b(x-[a/b]*y)=1 扩展欧几里德算法 具体方法: 在用欧几里德算法求d=gcd(a,b)的过程中求方程ax+by=d的一组整数解(x,y) 若d|c,不妨设c=kd,则有a(kx)+b(ky)=c;否则原方程无整数解 扩展欧几里德算法 扩展欧几里德算法(递归实现): int gcd(int a,int b) if b=0 then x←1 y←0 return a d←gcd(b,a%b) x←y y←x-[a/b]y x←x y←y return d 中国剩余定理 孙子定理,韩信点兵,隔墙算,鬼谷算,大衍求一术... 物不知数问题:今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?答曰:二十三.术曰:三三数之剩二,

文档评论(0)

1亿VIP精品文档

相关文档