C语言程序设计第5章(姜恒远著.ppt
《C语言程序设计第5章(姜恒远著.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计第5章(姜恒远著.ppt(37页珍藏版)》请在三一办公上搜索。
1、第5章 常用数值计算算法及其程序设计,主要内容,5.1 素数判断5.2 最大公约数求解5.3 穷举法求满足条件的一组解5.4 级数近似计算 5.5 一元非线性方程求根*5.6 定积分近似计算,5.1 素数判断,素数 如果一个正整数n只能被1和n自身整除,则称n为素数(prime)。1不是素数,2是素数。例如:7是素数,8不是素数,5.1 素数判断,5.1.1 最简单素数判断算法5.1.2 改进后的素数判断算法,5.1.1 最简单素数判断算法,算法描述 若n2且n不能被2n-1范围内的任一个整数整除,n就是素数;否则n不是素数;若发现n不是素数,立即停止后续判断。程序实现 for(t=1,i=2
2、;t,5.1.2 改进后的素数判断算法,算法描述 如果n2且n不能被2sqrt(n)之间的所有整数整除,n就是素数。程序实现 r=sqrt(n);for(t=1,i=2;t,5.2 最大公约数求解,最大公约数 能同时被x和y整除的最大整数是整数x和y的最大公约数(GCD)。例如:30和45的公约数有3、5、15,其中15是30和45的最大公约数。,5.2 最大公约数求解,5.2.1 brute-force算法5.2.2 欧几里德算法,5.2.1 brute-force算法,算法描述(1)设x(或y)是x、y的最大公约数z;(2)判断x和y是否均能被z整除。若z不能同时整除x和y则z-1z,重复
3、S2步。否则,做下一步操作;(3)输出(或返回)z。,5.2.1 brute-force算法,#include int main(void)int x=30,y=45,z;z=x;while(!(x%z=0,程序实现,5.2.2 欧几里德算法,算法描述(1)判断x除以y的余数r是否为0。若r为0则y是x、y的最大公约数,继续做下步操作;否则yx,ry重复做第(1)步。(2)输出(或返回)y,5.2.2 欧几里德算法,#include int main(void)long x=100000,y=100005,r;while(r=x%y)!=0)x=y;y=r;printf(“%ld”,y);re
4、turn 0;,程序实现,5.3 穷举法求满足条件的一组解,例1:某人在纸上写了一个四位整数3a45(a代表一个数字)。已知这个四位整数被3除后的值是1115,请问这个四位整数是什么?算法描述 用a的所有可能取值(09)分别形成10个四位整数3045、3145、3945 依次判断这10个四位整数中的每一个被3除后的值是否1115,若是则输出。,5.3 穷举法求满足条件的一组解,#include int main(void)int a,b;for(a=0;a=9;a+)b=3*1000+a*100+45;if(b/3=1115)printf(“%d”,b);,程序实现,5.3 穷举法求满足条件的
5、一组解,例2 中国古代数学著作算经中提出一个问题:公鸡每只5钱,母鸡每只3钱,小鸡1钱3只。若用100钱买100只鸡,可以有多少种买法?用x表示可以买到的公鸡数量、y表示可以买到的母鸡数量、z表示可以买到的小鸡数量。则:x+y+z=100,5x+3y+z/3=100,16,5.3 穷举法求满足条件的一组解,算法描述 不重复不遗漏地取x、y和z的所有可能值,分别将每组取值代入方程组 x+y+z=100,5x+3y+z/3=100 判断是不是方程组的解,若是解则输出x、y和z的这一组取值。,5.3 穷举法求满足条件的一组解,#include int main(void)int x,y,z;for(
6、x=0;x=20;x+)for(y=0;y=33;y+)for(z=0;z=100;z+)if(x+y+z=100,程序实现,5.4 级数近似计算,一个函数可以近似地表示为一个收敛的幂级数。因此函数求值问题可以归结为级数项求和问题。例如:用计算机计算无穷级数的值时只能计算有限个级数项的和。因此,用程序求得的级数值只能是在给定误差范围内的近似值。即:计算级数前n个项之和,当通项(第n项)的绝对值小于所给误差时停止级数项累加计算。,5.4 级数近似计算,5.4.1 简单方法5.4.2 递推法,5.4.1 简单方法,程序实现 计算ex级数展开式的近似值,误差为键盘输入的eps。,#include#i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 姜恒远著
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-5426438.html