具体数学-第4章-数论(4.4节-4.6节).pptx

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 数论 (Number Theory) 鞠成东 E-mail:juchd@ M. P. 参考教材与书目 。 参考教材与书目 书名:具体数学:计算机科学基础(第2版) 原书名:Concrete Mathematics: A Foundation for Computer Science (2nd Edition) 作者:(美)Ronald L. Graham, Donald E. Knuth, Oren Patashnik 译者:张明尧,张凡 出版社:人民邮电出版社 ISBN:978-7-115-30810-8 课程教学内容 ● 第1章 递归问题 ● 第2章 和式(选讲) ● 第3章 整值函数 ● 第4章 数论 ● 第5章 二项式系数 ● 第6章 特殊的数 ● 第7章 生成函数(自学) ● 第8章 离散概率 ● 第9章 渐进式 课程教学内容 ● It introduces the mathematics that supports the analysis of algorithms, modeling probems in real world. See, Chap. 1 – Recurrence 递归的计数 Chap. 2 – Sum 各种求和,用于算法复杂度计算等 Chap. 6 – Special Numbers 调和数列及有关求和问题 ● Concrete mathematics is a blending of continuous and discrete mathematics. See, Chap. 3 – Integer Functions 实数的整数部分运算 Chap. 9 – Asymptotics 离散到连续的渐进 课程教学内容 ● The goal is for the student to have mathematical skills to solve complex problems, and to discover subtle patterns in data. Chap. 7 – Generating Functions 用于概率计算的母函数 Chap. 8 – Discrete Probability 离散问题概率(最有趣) 本章教学内容 ● 4.4 阶乘的因子(Factorial Factors) ● 4.2 互素(Relative Primality) ● 4.3 mod:同余关系(MOD: The Congruence Relation) 8 4.4 阶乘的因子 n 0 1 2 3 4 5 6 7 8 9 10 n! 1 1 2 6 24 120 720 5040 40320 362880 3628800 9 10 11 由于阶乘有广泛的应用,因此对大数阶乘算法的优化问题是很重要的,这就涉及到大数的存储、表示和计算的方式方法等问题。 菜鸟篇 程序1:一个最直接的计算阶乘的 程序2:稍微复杂了一些,使用了递归,一个C++初学者写的程序 12 程序1:一个最直接的计算阶乘的程序 #include stdio.h #include stdlib.h int main(int argc, char* argv[]){ long i,n,p=1; scanf(%d,n); for (i=1;i=n;i++) p*=i; printf(%d!=%d/n,n,p); return 0; } 13 程序2:稍微复杂了一些,使用了递归。 #include iostream.h long int fac(int n); void main() { int n; coutinput a positive integer:; cinn; long fa=fac(n); coutn! =faendl; } long int fac(int n) { 语句略; } 14 程序点评:这两个程序在计算12以内的数是正确的,但当n12时,程序的计算结果就完全错误了,单从算法上讲,程序并没有错,错误的原因在于long型整数能够表示的范围是很有限的。当n=13时,计算结果溢出,在C语言,整数相乘时发生溢出时不会产生任何异常,也不会给出任何警告。 怎么办?将程序1中的long型换成do

文档评论(0)

heroliuguan + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8073070133000003

1亿VIP精品文档

相关文档