第6章 数学问题.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
零基础学算法 第6章:数学问题 课程安排 6.1 有趣的整数 6.2 素数 6.3 阶乘 6.4 求π的近似值 6.5 方程求解 6.6 矩阵的运算 6.7 一元多项式的运算 6.1 有趣的整数 如果一个数恰好等于其因子之和,这个数就称为完数。 6.1.1 完数 6=1+2+3 28=1+2+4+7+14 求10000以内的所有完数的过程: (1)则用n去除以1~n之间的所有整数,将能整除的被除数保存到一个数组中,作为n的一个因子。 (2)用数n减去该因子,以方便计算各因子之和是否正好等于n。 (3)继续重复步骤1和步骤2,直至将所有整数除完为止。 (4)最后判断各因子之和是否等于数n,若相等,则数n为完数,输出该数和各因子。 6.1 有趣的整数 假设有a、b两个数,若a的所有因子之和等于b的所有因子之和,并且a不等于b,则称a和b是一对亲密数。如284和220就是一对亲密数。 若要找出10000以内的亲密数,可使用以下算法: (1)对每一个数a,将其因子分解出来,并将因子保存到一个数组中,再将因子之和保存到变量b1。 (2)将因子之和b1再进行因子分解,并将因子保存到一个数组中,将因子之和保存到变量b2中。 (3)若b2等于a,并且b1不等于b2,则找到一对亲密数为a和b1,可将其输出。 (4)重复步骤(1)~(3),即可找出指定范围的亲密数。 6.1.2 亲密数 6.1 有趣的整数 一个三位数,若数值等于各位数字的三次幂之和,就称为“水仙花数”。 6.1.3 水仙花数 6.1 有趣的整数 所谓自守数,是指一个数的平方的尾数等于该数自身的自然数。例如:6的平方等于36,尾数是6,所以6是自守数;25的平方等于625,尾数是25,所以25是自守数。 6.1.4 自守数 2 6.1 有趣的整数 欧几里德算法 欧几里德算法采用辗转相除的方法来求最大公约数,这是计算两个数最大公约数的传统算法 其算法思路为: (1)对于已知两数m、n,使mn; (2)m除以n得余数r; (3)若r=0,则n为求得的最大公约数,跳至第(5)求最小公倍数;否则执行第4步; (4)将n的值保存到m中,将r的值保存到n中,重复执行步骤(2)和(3)。 (5)有了两数的最大公约数,则最小公倍数就很简单了,将两数相乘的积除以最大公约数即可。 6.1.5 最大公约数最小公倍数 6.1 有趣的整数 Stein算法 Stein算法只有整数的移位和加减法,而不需要进行除法和取模运算,这将提高算法的执行效率。 Stein算法如下(求a、b两数的最大公约数): (1)首先判断a或b是否为0,若a=0,b就是最大公约数;若b=0,a就是最大公约数,完成计算操作。 (2)设a1=a、b1=b和c1=1。 (3)判断an和bn是否为偶数,若都是偶数,则使an+1=an/2,bn+1=bn/2,cn+1=cn*2。 (4)若an是偶数,bn是奇数,则使an+1=an/2,bn+1=bn,cn+1=cn。 (5)若bn是偶数,an是奇数,则使bn+1=bn/2,an+1=an,cn+1=cn。 (6)若an和bn都是奇数,则使an+1=|an-bn|,bn+1=min(an,bn),cn+1 =cn。 (7)n累加1,跳转到第3步进行下一轮运算。 6.1.5 最大公约数最小公倍数 6.2 素数 所谓素数,是指除了1和自身之外,没有别的因数的数。除了1和自身外,还有别的因数的数是合数。1既不是素数也不是合数。素数的分布是没有规律的。如:101、401、601、701都是素数,但上下面的301和901却是合数。 要求N是不是素数,可用N逐个除以2~N-1之间的数,若某个数能被整除,则表示该数不是素数 6.2.1 求素数 6.2 素数 所谓回文数,是指一个多位数在按位读时,无论从左向右还是从右向左倒序读取,其结果都是一样的特征。例如:11、22、101、111、818、12321等。 回文数素数 平方回文数 6.2.2 回文素数 6.2 素数 所谓哥德巴赫猜想,是指哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数之和。大家都相信这个猜想是正确的,但不能证明。 对于哥德巴赫猜想的验证,算法很简单,其基本思路是:设n为大于等于6的一个偶数,可将其分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则在该数得到验证。若n1不是素数,就不必再检查

文档评论(0)

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

一线鞋类设计师,喜欢整理收集文档。

1亿VIP精品文档

相关文档