欢迎来到天天文库
浏览记录
ID:48045136
大小:438.00 KB
页数:26页
时间:2020-01-13
《C语言算法设计第6章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第6章:数学问题辽宁省朝阳市第二高级中学邢德智课程安排6.1有趣的整数6.2素数6.3阶乘6.4求π的近似值6.5方程求解6.6矩阵的运算6.7一元多项式的运算6.1有趣的整数如果一个数恰好等于其因子之和,这个数就称为完数。6.1.1完数6=1+2+328=1+2+4+7+14求10000以内的所有完数的过程:(1)则用n去除以1~n之间的所有整数,将能整除的被除数保存到一个数组中,作为n的一个因子。(2)用数n减去该因子,以方便计算各因子之和是否正好等于n。(3)继续重复步骤1和步骤2,直至将所有整数除完为止。(4)最后判断各因子之和是否等
2、于数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),即可找出指定
3、范围的亲密数。6.1.2亲密数6.1有趣的整数一个三位数,若数值等于各位数字的三次幂之和,就称为“水仙花数”。6.1.3水仙花数6.1有趣的整数所谓自守数,是指一个数的平方的尾数等于该数自身的自然数。例如:6的平方等于36,尾数是6,所以6是自守数;25的平方等于625,尾数是25,所以25是自守数。6.1.4自守数26.1有趣的整数欧几里德算法欧几里德算法采用辗转相除的方法来求最大公约数,这是计算两个数最大公约数的传统算法其算法思路为:(1)对于已知两数m、n,使m>n;(2)m除以n得余数r;(3)若r=0,则n为求得的最大公约数,跳至第
4、(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和
5、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=
6、an-bn
7、,bn+1=min(an,bn),cn+1=cn。(7)n累加1,跳转到第3步进行下一轮运算。6.1.5最大公约数最小公倍数6.2素数所谓素数,是指除了1和自身之外,没有别的因数的数。除了1和自身外,还有别的因数的数是合数。
8、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的偶数都是两个素数之和。大家都相信这个猜想是正确的,但
9、不能证明。对于哥德巴赫猜想的验证,算法很简单,其基本思路是:设n为大于等于6的一个偶数,可将其分解为n1和n2两个数,分别检查n1和n2是否为素数,如都是,则在该数得到验证。若n1不是素数,就不必再检查n2是否素数。先从n1=2开始,检验n1和n2(n2=n-n1)是否素数。然后使n1+2再检验n1、n2是否素数……,直到n1=n/2为止。6.2.3哥德巴赫猜想6.3阶乘6.3.1用递归计算阶乘6.3.2大数阶乘6.4求π的近似值6.4.1概率法6.4求π的近似值6.4.2割圆法6.4求π的近似值6.4.3公式法6.4求π的近似值6.4.4计
10、算任意位数的π6.5方程求解6.5.1高斯消元法解线性方程组6.5方程求解6.5.2二分法解非线性方程二分法又称对分法,是最简单的求解一元非线性方程根的算法之一。其
此文档下载收益归作者所有