《算法的基本工具和优化技巧精品文稿.ppt》由会员分享,可在线阅读,更多相关《算法的基本工具和优化技巧精品文稿.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算法的基本工具和优化技巧第1页,本讲稿共45页循环与循环与递归递归n将大量重复处理大量数据的步骤将大量重复处理大量数据的步骤抽象成循环或递归模式,设计出抽象成循环或递归模式,设计出可以针对不同规模解决问题的算可以针对不同规模解决问题的算法。法。第2页,本讲稿共45页循环设计中要注意算法的效率循环设计中要注意算法的效率n循环体的特点是:循环体的特点是:“以不变应万以不变应万变变”。n所谓所谓“不变不变”是指循环体内运算是指循环体内运算的表现形式是不变的,而每次具的表现形式是不变的,而每次具体的执行内容却是不尽相同的。体的执行内容却是不尽相同的。在循环体内用不变的运算表现形在循环体内用不变的运算表
2、现形式去描述各种相似的重复运算。式去描述各种相似的重复运算。第3页,本讲稿共45页【例例例例1 1 1 1】求求求求1/1!-1/3!+1/5!-1/7!+1/1!-1/3!+1/5!-1/7!+1/1!-1/3!+1/5!-1/7!+1/1!-1/3!+1/5!-1/7!+(-1-1-1-1)n+1/(2n-1)!n+1/(2n-1)!n+1/(2n-1)!n+1/(2n-1)!n n数学模型数学模型数学模型数学模型2 2 2 2:S S S Sn n n n=S=S=S=Sn-1n-1n-1n-1+A+A+A+An n n n;A A A An n n n=(-1)*A=(-1)*A=(-
3、1)*A=(-1)*An-1 n-1 n-1 n-1*(2*n-2)*(2*n-1)*(2*n-2)*(2*n-1)*(2*n-2)*(2*n-1)*(2*n-2)*(2*n-1)main()inti,n,sign;floats,t=1;cinn;s=1;for(i=2;i=n;i+)t=(-1)*t*(2*i-2)*(2*i-1);s=s+1/t;cout“Sum=”s;第4页,本讲稿共45页“自自顶顶向下向下”的的的的设计设计设计设计方法方法方法方法【例例2 2】编编算算法法找找出出10001000以以内内所所有有完数完数例例如如,2828的的因因子子为为1 1、2 2、4 4、7 7,1
4、414,而而28=1+2+4+7+1428=1+2+4+7+14。因因此此2828是是“完完数数”。编编算算法法找找出出10001000之之内内的的所所有有完完数数,并并按按下下面面格格式式输输出出其因子:其因子:2828第5页,本讲稿共45页1)顶层算法 for(i=2;i=n;i+)判断i是否是完数;是完数则按格式输出;2)判断i是否是完数for(j=2;ji;j+)找i的因子,并累加如果累加值等于i,i是完数第6页,本讲稿共45页3)进一步细化判断i是否“完数”算法s=1for(j=2;ji;j+)if(i%j=0)s=s+j;if (s=i)i是“完数”;第7页,本讲稿共45页算法如下
5、:算法如下:main()int i,k,j,s;for(i=1;i=1000;i+)s=1;/*两个赋初值语句两个赋初值语句s=1 for(j=2;ji;j+)if(i%j)=0)s=s+j;if(i=s)couts 0)hanoi(n-1,a,c,b);move(a,b);hanoi(n-1,c,b,a);第18页,本讲稿共45页【例例例例】任给十进制的正整数,请从低位到高位逐位任给十进制的正整数,请从低位到高位逐位任给十进制的正整数,请从低位到高位逐位任给十进制的正整数,请从低位到高位逐位输出各位数字。输出各位数字。输出各位数字。输出各位数字。n n循环算法设计:循环算法设计:f1(n)f
6、1(n)f1(n)f1(n)while(n=10)while(n=10)while(n=10)while(n=10)cout n%10;cout n%10;cout n%10;cout n%10;n=n/10;n=n/10;n=n/10;n=n/10;coutn;coutn;coutn;coutn;第19页,本讲稿共45页递归算法设计:递归算法设计:1)同上,算法从低位到高位逐位求出各位数字)同上,算法从低位到高位逐位求出各位数字并输出,求个位数字的算式为并输出,求个位数字的算式为n%10,下一,下一步则是递归地求步则是递归地求n/10的个位数字。的个位数字。2)当)当n10时,时,n为一位数
7、停止递归。为一位数停止递归。递归算法如下:递归算法如下:f2(n)if(n10)coutn;elsecout=10)ai=n%10;i=i+1;n=n/10;ai=n;for(j=i;j=0;j-)coutn;第22页,本讲稿共45页递归算法设计:递归算法设计:n与与f2不同,递归算法是先递归地求不同,递归算法是先递归地求n/10的个位的个位数字,然后再求个位数字数字,然后再求个位数字n的个位数字并输出。的个位数字并输出。这样输出操作是在回溯时完成的。递归停止条件这样输出操作是在回溯时完成的。递归停止条件与与f2相同为相同为n10。n递归算法如下:递归算法如下:f4(n)if(n10)cout
8、n;elsef(n/10);coutn%10;第23页,本讲稿共45页例例例例4 4排列问题排列问题排列问题排列问题设计一个递归算法生成设计一个递归算法生成设计一个递归算法生成设计一个递归算法生成n n个元素个元素个元素个元素r1,r2,rnr1,r2,rn的全排列。的全排列。的全排列。的全排列。分析:分析:分析:分析:n=1n=1输出:输出:输出:输出:r1r1n=2n=2输出:输出:输出:输出:r1r2r2r1r1r2r2r1n=3n=3输出:输出:输出:输出:r1r2r3r1r3r2r1r2r3r1r3r2r2r1r3r2r3r1r2r1r3r2r3r1r3r1r2r3r2r1r3r1r
9、2r3r2r1分析分析分析分析r3r3,全部排列可以分为三类:,全部排列可以分为三类:,全部排列可以分为三类:,全部排列可以分为三类:(1 1)r1r1类:类:类:类:r1r1后跟后跟后跟后跟r2r3r2r3的全排列的全排列的全排列的全排列(2 2)r2r2类:类:类:类:r2r2后跟后跟后跟后跟r1r3r1r3的全排列的全排列的全排列的全排列(3 3)r3r3类:类:类:类:r3r3后跟后跟后跟后跟r1r2r1r2的全排列的全排列的全排列的全排列将(将(将(将(1 1)中)中)中)中r1r2r1r2互换位置,得到(互换位置,得到(互换位置,得到(互换位置,得到(2 2);将();将();将(
10、);将(1 1)中)中)中)中r1r3r1r3互互互互换位置,得到(换位置,得到(换位置,得到(换位置,得到(3 3);它说明可以用循环的方式重复);它说明可以用循环的方式重复);它说明可以用循环的方式重复);它说明可以用循环的方式重复执行交换位置,后面跟随剩余序列的所有排列,对执行交换位置,后面跟随剩余序列的所有排列,对执行交换位置,后面跟随剩余序列的所有排列,对执行交换位置,后面跟随剩余序列的所有排列,对剩余序列再使用这个方法,这就是递归调用,当后剩余序列再使用这个方法,这就是递归调用,当后剩余序列再使用这个方法,这就是递归调用,当后剩余序列再使用这个方法,这就是递归调用,当后跟的元素没有
11、时就得到递归的边界。跟的元素没有时就得到递归的边界。跟的元素没有时就得到递归的边界。跟的元素没有时就得到递归的边界。第24页,本讲稿共45页递归小结优点:优点:结构清晰,可读性强,而且结构清晰,可读性强,而且容易用数学归纳法来证明算法的正容易用数学归纳法来证明算法的正确性,因此它为设计算法、调试程确性,因此它为设计算法、调试程序带来很大方便。序带来很大方便。缺点:缺点:递归算法的运行效率较低,无递归算法的运行效率较低,无论是耗费的计算时间还是占用的存储论是耗费的计算时间还是占用的存储空间都比非递归算法要多。空间都比非递归算法要多。第25页,本讲稿共45页 由由于于递递归归算算法法的的实实现现包
12、包括括递递归归和和回回溯溯两两步步,当当问问题题需需要要“后后进进先先出出”的的操操作作时时,还还是是用用递递归归算算法法更更有有效效。如如数数据据结结构构课课程程中中二二叉叉树树的的各各种种遍遍历历、图图的的深深度度优优先先等等算算法法都都是是如如此此。所所以以不不能能仅仅仅仅从从效效率率上上评评价价两两个个控控制制重重复机制的好坏。复机制的好坏。事实上,无论把递归作为一种算法的策略,还是一事实上,无论把递归作为一种算法的策略,还是一种实现机制,对我们设计算法都有很好的帮助。种实现机制,对我们设计算法都有很好的帮助。第26页,本讲稿共45页例例7 7 判断判断s s字符串是否为回文的递归函数
13、字符串是否为回文的递归函数int ishuiwen(char*s,int n)int ishuiwen(char*s,int n)if(n=0|n=1)return 1;if(n=0|n=1)return 1;elseelse if(*s=*(s+n-1)ishuiwen(s+1,n-2);if(*s=*(s+n-1)ishuiwen(s+1,n-2);else return 0;else return 0;第27页,本讲稿共45页天津城市建设学院递推是计算机数值计算中的一个重要递推是计算机数值计算中的一个重要算法,可以将复杂的运算化为若干重复的算法,可以将复杂的运算化为若干重复的简单运算,充
14、分发挥计算机长于重复处理简单运算,充分发挥计算机长于重复处理的特点,现举一例的特点,现举一例递递 推推第28页,本讲稿共45页天津城市建设学院猴子吃桃。有一群猴子摘来了一批桃子,猴王规定每天只准吃猴子吃桃。有一群猴子摘来了一批桃子,猴王规定每天只准吃一半加一只(即第二天吃剩下的一半加一只,以此类推),第一半加一只(即第二天吃剩下的一半加一只,以此类推),第九天正好吃完,问猴子们摘来了多少桃子?九天正好吃完,问猴子们摘来了多少桃子?a9=2a9=2a8=(a9+1)*2a8=(a9+1)*2第29页,本讲稿共45页天津城市建设学院作业:作业:1 1、运动会开了、运动会开了N N天,一共发出金牌天
15、,一共发出金牌M M枚。第一天发金枚。第一天发金牌牌1 1枚加剩下的七分之一枚,第二天发金牌枚加剩下的七分之一枚,第二天发金牌2 2枚加剩下枚加剩下的七分之一枚,第的七分之一枚,第3 3天发金牌天发金牌3 3枚加剩下的七分之一枚,枚加剩下的七分之一枚,以后每天都照此办理。到了第以后每天都照此办理。到了第N N天刚好还有金牌天刚好还有金牌N N枚,枚,到此金牌全部发完。编程求到此金牌全部发完。编程求N N和和M M。第30页,本讲稿共45页天津城市建设学院作业:作业:2 2、国王分财产。某国王临终前给儿子们分财产。他把、国王分财产。某国王临终前给儿子们分财产。他把财产分为若干份,然后给第一个儿子
16、一份,再加上剩余财产分为若干份,然后给第一个儿子一份,再加上剩余财产的财产的1/101/10;给第二个儿子两份,再加上剩余财产的;给第二个儿子两份,再加上剩余财产的1/101/10;给第;给第i i个儿子个儿子i i份,再加上剩余财产的份,再加上剩余财产的1/101/10。每个儿。每个儿子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是子都窃窃自喜。以为得到了父王的偏爱,孰不知国王是“一碗水端平一碗水端平”的。请用程序回答,老国王共有几个儿的。请用程序回答,老国王共有几个儿子?财产共分成了多少份?子?财产共分成了多少份?第31页,本讲稿共45页天津城市建设学院作业:作业:3 3、出售金鱼。、出售
17、金鱼。第一次卖出全部金鱼的一半加二分之一条金鱼;第一次卖出全部金鱼的一半加二分之一条金鱼;第二次卖出乘余金鱼的三分之一加三分之一条金鱼;第二次卖出乘余金鱼的三分之一加三分之一条金鱼;第三次卖出剩余金鱼的四分之一加四分之一条金鱼;第三次卖出剩余金鱼的四分之一加四分之一条金鱼;第四次卖出剩余金鱼的五分之一加五分之一条金鱼;第四次卖出剩余金鱼的五分之一加五分之一条金鱼;现在还剩下现在还剩下1111条金鱼,在出售金鱼时不能把金鱼切开或者有条金鱼,在出售金鱼时不能把金鱼切开或者有任何破损的。问这鱼缸里原有多少条金鱼?任何破损的。问这鱼缸里原有多少条金鱼?第32页,本讲稿共45页天津城市建设学院作业:作业
18、:4 4、某路公共汽车,总共有八站,从一号站发轩时车上已、某路公共汽车,总共有八站,从一号站发轩时车上已有有n n位乘客,到了第二站先下一半乘客,再上来了六位乘客;到位乘客,到了第二站先下一半乘客,再上来了六位乘客;到了第三站也先下一半乘客,再上来了五位乘客,以后每到一站了第三站也先下一半乘客,再上来了五位乘客,以后每到一站都先下车上已有的一半乘客,再上来了乘客比前一站少一个都先下车上已有的一半乘客,再上来了乘客比前一站少一个,到了终点站车上还有乘客六人,问发车时车上的乘,到了终点站车上还有乘客六人,问发车时车上的乘客有多少?客有多少?第33页,本讲稿共45页天津城市建设学院作业:作业:5 5
19、、小华读书。第一天读了全书的一半加二页,第二天读、小华读书。第一天读了全书的一半加二页,第二天读了剩下的一半加二页,以后天天如此了剩下的一半加二页,以后天天如此,第六天读完了,第六天读完了最后的三页,问全书有多少钱页?最后的三页,问全书有多少钱页?第34页,本讲稿共45页天津城市建设学院作业:作业:6 6、日本著名数学游戏专家中村义作教授提出这样一个问题:日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将父亲将2520个桔子分给六个儿子。分完个桔子分给六个儿子。分完后父亲说:后父亲说:“老老大将分给你的桔子的大将分给你的桔子的1/8给老二;老二拿到后连同原先的给老二;老二拿到后连同原先的
20、桔子分桔子分1/7给老三;老三拿到后连同原先的桔子分给老三;老三拿到后连同原先的桔子分1/6给老四;给老四;老四拿到后连同原先的桔子分老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同给老五;老五拿到后连同原先的桔子分原先的桔子分1/4给老六;老六拿到后连同原先的桔子分给老六;老六拿到后连同原先的桔子分1/3给给老大老大”。结果大家手中的桔子正好一样多。问六兄弟原来。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?手中各有多少桔子?第35页,本讲稿共45页科目及格学生学号语文1,9,6,8,4,3,7代数5,2,9,1,3,7外语8,1,6,7,3,5,4,9枚举法:枚举法:一
21、次考试共考了语文、代数和外语三科。某小一次考试共考了语文、代数和外语三科。某小一次考试共考了语文、代数和外语三科。某小一次考试共考了语文、代数和外语三科。某小组共有九人,考后各科及格名单如下表,请编组共有九人,考后各科及格名单如下表,请编组共有九人,考后各科及格名单如下表,请编组共有九人,考后各科及格名单如下表,请编写算法找出三科全及格的学生的名单(学号)。写算法找出三科全及格的学生的名单(学号)。写算法找出三科全及格的学生的名单(学号)。写算法找出三科全及格的学生的名单(学号)。第36页,本讲稿共45页求求X,使,使X2为一个各位数字互为一个各位数字互不相同的九位数。(枚举法)不相同的九位数
22、。(枚举法)n分析:只能用枚举法尝试完成此题。由分析:只能用枚举法尝试完成此题。由X2为一个九位数,估算为一个九位数,估算X应在应在1000032000之间。之间。n1)用一个用一个10个元素的状态数组个元素的状态数组p,记录数字,记录数字09在在X2中中出现的情况。数组元素都赋初值为出现的情况。数组元素都赋初值为0,表示数字,表示数字09没没有被使用过。有被使用过。n2)对尝试的每一个数对尝试的每一个数x,求,求x*x,并取其各位数字,数字并取其各位数字,数字作为数组的下标,若对应元素为作为数组的下标,若对应元素为0,则该数字第一次出现,则该数字第一次出现,将对应的元素赋为将对应的元素赋为1
23、,表示该数字已出现一次。否则,若对应,表示该数字已出现一次。否则,若对应元素为元素为1,则说明有重复数字,结束这次尝试。,则说明有重复数字,结束这次尝试。n3)容易理解当状态数组容易理解当状态数组p中有中有9个元素为个元素为1时,就找到了问题时,就找到了问题的解。但这样判定有解,需要扫描一遍数组的解。但这样判定有解,需要扫描一遍数组p。为避免这个步骤,。为避免这个步骤,设置一个计数器设置一个计数器k,在取,在取x*x各个位数字的过程中记录不同的数各个位数字的过程中记录不同的数字的个数,当字的个数,当k=9时就找到了问题的解。时就找到了问题的解。第37页,本讲稿共45页main()longx,y
24、1,y2;intp10,2,i,t,k,num=0;for(x=10000;x32000;x+)for(i=0;i=9;i=i+1)pi=0;y1=x*x;y2=y1;k=0;for(i=1;i=9;i+)t=y2%10;y2=y2/10;if(pt=0)k=k+1;pt=1;elsebreak;if(k=9)num=num+1;cout“No.”num“:=”x“n2=”y1);第38页,本讲稿共45页n警察局抓了警察局抓了a a,b b,c c,d d四名偷窃嫌疑犯,其中只有四名偷窃嫌疑犯,其中只有一人是小偷。审问中一人是小偷。审问中 a a说:说:“我不是小偷。我不是小偷。”b b说:说
25、:“c c是小偷。是小偷。”c c说:说:“小偷肯定是小偷肯定是d d。”d d说:说:“c c在冤枉人。在冤枉人。”现在已经知道四个人中三人说的是真话,一人说现在已经知道四个人中三人说的是真话,一人说的是假话,的是假话,问到底谁是小偷?问到底谁是小偷?信息数字化第39页,本讲稿共45页算算算算法法法法设设设设计计计计:用用用用变变变变量量量量x x x x存存存存放放放放小小小小偷偷偷偷的的的的编编编编号号号号,则则则则x x x x的的的的取取取取值值值值范范范范围围围围从从从从1 1 1 1取取取取到到到到4 4 4 4,就就就就假假假假设设设设了了了了他他他他们们们们中中中中的的的的某
26、某某某人人人人是是是是小小小小偷偷偷偷的的的的所有情况。四个人所说的话就可以分别写成:所有情况。四个人所说的话就可以分别写成:所有情况。四个人所说的话就可以分别写成:所有情况。四个人所说的话就可以分别写成:a a a a说的话:说的话:说的话:说的话:x1x1x1x1 b b b b说的话:说的话:说的话:说的话:x=3x=3x=3x=3 c c c c说的话:说的话:说的话:说的话:x=4x=4x=4x=4 d d d d说的话:说的话:说的话:说的话:x4x4x4x4或或或或not(x=4)not(x=4)not(x=4)not(x=4)注意注意注意注意:在在在在x x x x的枚举过程中
27、,当这四个逻辑式的值相的枚举过程中,当这四个逻辑式的值相的枚举过程中,当这四个逻辑式的值相的枚举过程中,当这四个逻辑式的值相加等于加等于加等于加等于3 3 3 3时,即表示时,即表示时,即表示时,即表示“四个人中三人说的是真话,一四个人中三人说的是真话,一四个人中三人说的是真话,一四个人中三人说的是真话,一人说的是假话人说的是假话人说的是假话人说的是假话”。第40页,本讲稿共45页算法如下:算法如下:算法如下:算法如下:main()main()main()main()int x;int x;int x;int x;for(x=1;x=4;x+)for(x=1;x=4;x+)for(x=1;x=
28、4;x+)for(x=1;x=4;x+)if(x1)+(x=3)+(x=4)+(x4)=3)if(x1)+(x=3)+(x=4)+(x4)=3)if(x1)+(x=3)+(x=4)+(x4)=3)if(x1)+(x=3)+(x=4)+(x4)=3)coutchr(64+x)coutchr(64+x)coutchr(64+x)coutchr(64+x)“is a thief.is a thief.is a thief.is a thief.”;运行结果:运行结果:运行结果:运行结果:c is a thief.c is a thief.c is a thief.c is a thief.第41页,
29、本讲稿共45页n n三位老师对某次数学竞赛进行了预测。他三位老师对某次数学竞赛进行了预测。他三位老师对某次数学竞赛进行了预测。他三位老师对某次数学竞赛进行了预测。他们的预测如下:们的预测如下:们的预测如下:们的预测如下:n n甲说:学生甲说:学生甲说:学生甲说:学生A A A A得第一名,学生得第一名,学生得第一名,学生得第一名,学生B B B B得第三名。得第三名。得第三名。得第三名。乙说:学生乙说:学生乙说:学生乙说:学生C C C C得第一名,学生得第一名,学生得第一名,学生得第一名,学生D D D D得第四名。得第四名。得第四名。得第四名。丙说:学生丙说:学生丙说:学生丙说:学生D D
30、 D D得第二名,学生得第二名,学生得第二名,学生得第二名,学生A A A A得第三名。得第三名。得第三名。得第三名。竞赛结果表明,他们都说对了一半,说错了一竞赛结果表明,他们都说对了一半,说错了一竞赛结果表明,他们都说对了一半,说错了一竞赛结果表明,他们都说对了一半,说错了一半,并且无并列名次,试编程输出半,并且无并列名次,试编程输出半,并且无并列名次,试编程输出半,并且无并列名次,试编程输出A A A A、B B B B、C C C C、D D D D各自的名次。各自的名次。各自的名次。各自的名次。第42页,本讲稿共45页算法设计:算法设计:算法设计:算法设计:1 1 1 1)用用用用a
31、a a a,b b b b,c c c c,d d d d 代代代代表表表表四四四四个个个个同同同同学学学学,其其其其存存存存储储储储的的的的值值值值代代代代表表表表他们的名他们的名他们的名他们的名 次。次。次。次。设置第一层计数循环设置第一层计数循环设置第一层计数循环设置第一层计数循环a a a a的范围从的范围从的范围从的范围从1 1 1 1到到到到4 4 4 4;设置第二层计数循环设置第二层计数循环设置第二层计数循环设置第二层计数循环b b b b的范围从的范围从的范围从的范围从1 1 1 1到到到到4 4 4 4;设置内计数循环设置内计数循环设置内计数循环设置内计数循环c c c c的
32、范围从的范围从的范围从的范围从1 1 1 1到到到到4 4 4 4;由由由由于于于于无无无无并并并并列列列列名名名名次次次次,名名名名次次次次的的的的和和和和为为为为1+2+3+4=101+2+3+4=101+2+3+4=101+2+3+4=10,由由由由此此此此可可可可计算计算计算计算 出出出出d d d d的名次值为的名次值为的名次值为的名次值为10-a-b-c10-a-b-c10-a-b-c10-a-b-c。2 2 2 2)问题的已知内容,可以表示成以下几个条件式:)问题的已知内容,可以表示成以下几个条件式:)问题的已知内容,可以表示成以下几个条件式:)问题的已知内容,可以表示成以下几个
33、条件式:(1)(a=1)+(b=3)=1(1)(a=1)+(b=3)=1(1)(a=1)+(b=3)=1(1)(a=1)+(b=3)=1 (2)(c=1)+(d=4)=1 (2)(c=1)+(d=4)=1 (2)(c=1)+(d=4)=1 (2)(c=1)+(d=4)=1 (3)(d=2)+(a=3)=1 (3)(d=2)+(a=3)=1 (3)(d=2)+(a=3)=1 (3)(d=2)+(a=3)=1 若三个条件均满足,则输出结果,若不满足,继续若三个条件均满足,则输出结果,若不满足,继续若三个条件均满足,则输出结果,若不满足,继续若三个条件均满足,则输出结果,若不满足,继续循环循环循环循
34、环 搜索,直至循环正常结束。搜索,直至循环正常结束。搜索,直至循环正常结束。搜索,直至循环正常结束。第43页,本讲稿共45页算法如下:算法如下:算法如下:算法如下:main()main()main()main()int a,b,c,d;int a,b,c,d;int a,b,c,d;int a,b,c,d;for(a=1;a=4;a+)for(a=1;a=4;a+)for(a=1;a=4;a+)for(a=1;a=4;a+)for(b=1;b=4;b+)for(b=1;b=4;b+)for(b=1;b=4;b+)for(b=1;b=4;b+)if(ab)if(ab)if(ab)if(ab)fo
35、r(c=1;c=4;c+)for(c=1;c=4;c+)for(c=1;c=4;c+)for(c=1;c=4;c+)if(ca&cb)if(ca&cb)if(ca&cb)if(ca&cb)d=10-a-b-c;d=10-a-b-c;d=10-a-b-c;d=10-a-b-c;if (da&db&dc)if (da&db&dc)if (da&db&dc)if (da&db&dc)if(a=1)+(b=3)=1&if(a=1)+(b=3)=1&if(a=1)+(b=3)=1&if(a=1)+(b=3)=1&(c=1)+(d=4)=1&(d=2)+(a=3)=1)(c=1)+(d=4)=1&(d=2
36、)+(a=3)=1)(c=1)+(d=4)=1&(d=2)+(a=3)=1)(c=1)+(d=4)=1&(d=2)+(a=3)=1)cout cout cout cout“a,b,c,d=a,b,c,d=a,b,c,d=a,b,c,d=”abcd;abcd;abcd;abcd;第44页,本讲稿共45页实验作业1 1 1 1、核核核核反反反反应应应应堆堆堆堆中中中中有有有有和和和和两两两两种种种种粒粒粒粒子子子子,每每每每秒秒秒秒钟钟钟钟内内内内一一一一个个个个粒粒粒粒子子子子可可可可以以以以反反反反应应应应产产产产生生生生3 3 3 3个个个个粒粒粒粒子子子子,而而而而一一一一个个个个粒粒粒粒
37、子子子子可可可可以以以以反反反反应应应应产产产产生生生生1 1 1 1个个个个粒粒粒粒子子子子和和和和2 2 2 2个个个个粒粒粒粒子子子子。若若若若在在在在t=0t=0t=0t=0时时时时刻刻刻刻的的的的反反反反应应应应堆堆堆堆中中中中只只只只有有有有一一一一个个个个粒子,求在粒子,求在粒子,求在粒子,求在t t t t时刻的反应堆中时刻的反应堆中时刻的反应堆中时刻的反应堆中粒子和粒子和粒子和粒子和粒子数。粒子数。粒子数。粒子数。2 2 2 2、求这样的两位数据:、求这样的两位数据:、求这样的两位数据:、求这样的两位数据:五位数五位数五位数五位数=2*=2*=2*=2*四位数,四位数,四位数
38、,四位数,9 9 9 9个数字各不相同个数字各不相同个数字各不相同个数字各不相同3 3 3 3、A A A A、B B B B、C C C C、D D D D、E E E E五五五五人人人人为为为为某某某某次次次次竞竞竞竞赛赛赛赛的的的的前前前前五五五五名名名名,他他他他们们们们在在在在比赛前猜名次:比赛前猜名次:比赛前猜名次:比赛前猜名次:A A A A说:说:说:说:B B B B得第三名,得第三名,得第三名,得第三名,C C C C得第五名得第五名得第五名得第五名B B B B说:说:说:说:D D D D得第二名,得第二名,得第二名,得第二名,E E E E得第四名得第四名得第四名得第四名C C C C说:说:说:说:B B B B得第一名,得第一名,得第一名,得第一名,E E E E得第四名得第四名得第四名得第四名D D D D说:说:说:说:C C C C得第一名,得第一名,得第一名,得第一名,B B B B得第二名得第二名得第二名得第二名E E E E说:说:说:说:D D D D得第二名,得第二名,得第二名,得第二名,A A A A得第三名得第三名得第三名得第三名结果每个人都猜对了一半,实际名次是什么?结果每个人都猜对了一半,实际名次是什么?结果每个人都猜对了一半,实际名次是什么?结果每个人都猜对了一半,实际名次是什么?第45页,本讲稿共45页