




免费预览已结束,剩余40页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
易语言经典算法共45页第45页易语言经典算法1. 取所有质数2. 求最小公倍数3. 求最大公约数4. 汉诺塔5. 9X9乘法表6. 猫捉老鼠(筛选法)7. 水仙花数问题8. 计算组合9. 身份证升级15位升级到18位10. 用冒泡法排序数字11. 九宫计算12. 奶牛问题13. 求阶乘14. 折半查找15. 给歌手打分16. 航线设置17. 数字全排列18. 借书方案19. 求直角三角形20. 二分排序21. 抢3022. 求回文数23. 斐波那契数列(递推法)24. 分块查找25. 求帕斯卡三角(杨辉三角)26. 箱子问题(贪婪法)27. 寻找文件(递归法)28. 求最大公约数(递归法)29. 取不重复数(排除法)30. 拉丁方31. 波松瓦分酒32. 皇后问题33. 背包问题34. 角谷猜想35. 邮票组合36. 贮油点37. 分解质因数38. 任意进制转换(大数)39. 计算星期几(常用公式)40. 计算星期几(蔡勒公式)41. 猴子吃桃子42. 马踏棋盘43. 打鱼还是晒网44. 九位累进可除数45. 十进制转为二进制46. 九连环47. 找窃贼48. 哥德巴赫猜想49. 最小生成数50. 农夫过河51. 旅游最省钱路径52. 马克思手稿中的数学题53. 上楼梯(递归).e54. 上楼梯(非递归)55. 金额大小写转换56. 求一元二次方程的根(二分法)57. 数字与IP地址间的转换58. 八皇后问题(回溯法)59. 求N阶幻方60. 计算分数的精确值61. 找零钱62. 求一元二次方程的根(公式法)63. 比赛日程(分治法)64. 两个有序数组的合并65. 统计投色子(2个)的结果66. 12小球问题67. 改进冒泡排序法68. 螺旋数组69. 射击环数70. 猜数字游戏71. 桶排序72. 造币厂问题73. 直接插入排序74. 搬砖75. 公车座位巧安排76. 韩信点兵(中国剩余定理)77. 黑洞数78. 矩阵相乘79. 螺旋矩阵问题(多循环法)80. 买水果问题81. 求平方根82. 求任意三角形面积83. 全排列问题(递推法)84. 怎样组合值最大85. 取两数之间均匀分布的随机数算法:递归递推法分块查找筛选法枚举法冒泡法二分法贪婪法序号:001使用算法:筛选法问题:取N以内的所有质数数量并显示,问题描述:求N(N0)个自然数中的所有质数数量,并显示问题分析:先把所有质数以外的数,打上“1“的标志,最后搜索整型数组,找出值为0的个数, 就是质数的个数!备注: 易语言例程:001.取所有质数.e序号:002使用算法:循环检验问题:求最小公倍数问题描述:求任意个自然数的最小公倍数问题分析:我们只要认准一个数,先从自身开始和另一个数求余数比较,为0那么这个数就是最小公倍数,如果不为0,那么把这个数不断翻倍再比较。 备注: 易语言例程:002.求最小公倍数.e序号:003使用算法:辗转相除法问题:求最大公约数问题描述:求任意个自然数的最大公约数问题分析:用辗转相除法求最大公约数用辗转相除法求两个数的最大公约数的步骤如下:先用小的一个数除大的一个数,得第一个余数;再用第一个余数除小的一个数,得第二个余数;又用第二个余数除第一个余数,得第三个余数;这样逐次用后一个数去除前一个余数,直到余数是0为止。那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。例如求1515和600的最大公约数,第一次:用600除1515,商2余315;第二次:用315除600,商1余285;第三次:用285除315,商1余30;第四次:用30除285,商9余15;第五次:用15除30,商2余0。1515和600的最大公约数是15。辗转相除法是求两个数的最大公约数的方法。如果求几个数的最大公约数,可以先求两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数。这样依次下去,直到最后一个数为止。最后所得的一个最大公约数,就是所求的几个数的最大公约数。备注: 易语言例程:003.求最大公约数.e序号:004使用算法:未知问题:汉诺塔问题描述:汉诺塔是一种古老的游戏,是指在一柱(设为“甲”柱)上从下向上依次放着从大到小的一叠盘子,要把该柱(“甲”柱)上的盘子全部搬到指定的柱上(设为“乙”柱),在搬运过程中,可以利用另外一根柱子(设为“丙”柱)来协助搬移,要求在搬移过程中必须始终(即每搬一步后)保持每根柱上(“甲”、“乙”、“丙”柱)的盘子都是处于从大到小(从柱子下面至上面)依次排列的状态,试问怎样搬移盘子?最少需要搬几次才能把“甲”柱上的全部盘子移至“乙”柱?古印度梵教曾利用这种方法来推算宇宙末日之时间。问题分析:在移动的过程中,必须按照下述移动规则:1. 直径较小的圆盘永远置于直径较大的圆盘上。2. 圆盘可任意地由任何一个木椿移到其他的木椿上。3. 每一次仅能移动一个圆盘。用递归调用的方法求解。备注: 易语言例程:004.汉诺塔.e序号:005使用算法:未知问题:9X9乘法表问题描述:列出99乘法表问题分析:被乘数和乘数都是从1-9依次递增1,到9后继续返回1重新递增!备注: 易语言例程:005.99乘法表.e序号:006使用算法:筛选法问题:猫捉老鼠(筛选法)问题描述:所谓筛选法就是从全集中将不合格的项全部删去,剩下的就是答案。30个只老鼠围成一圈,花猫从第一只开始数,数到5或5的倍数就吃掉,问最有后一个吃掉的应该是站在地几个位置上的老鼠?这是个经典问题,解法就是模拟整个过程,有点类似于循环队列。另外,为了程序上处理方便,可以假定所有老鼠都被吃掉,然后看一下最后一个被吃掉的是谁。另一处为了处理方便而采取的措施是pos的初始值设为-1.很多时候,对问题的问法稍作变动,或者将初始值、加减变量的位置稍作调整,用程序处理起来会方便很多。备注:例程:006. 猫捉老鼠(筛选法).e序号:007使用算法:枚举法问题:水仙花数问题问题描述:在100-999这些三位数中,有些数本身等于它百位上数字的立方加上十位上数字的立方加上个位上数字的立方,这样的三位数叫水仙花数。那么现在我们就要来找出这些三位数。问题分析:“根据水仙花数的特点:我们只要将这些三位数按照下面的规律逐个比较就可以了。比如:的立方的立方的立方,那么这个数就是水仙花数。”备注: 易语言例程:007.水仙花数问题.e序号:008使用算法:递归问题:计算组合问题描述:找出从自然数1,2,. n中任取r个数的组合。例如n=5,r=3问题分析:分析所列的10个组合,可用这样的递归思想来考虑慈和函数的算法,设子程序计算分组子程序(m,k) 即找出自然数1,2。m中任取k个数的所有组合。当组合的第一个数字选定时,其后面的数字是从余下的m-1个数中取k-1个数的所有组合。这就将求m个数中去r个数的组合问题转化成求m-1个数中取k-1数的组合。备注: 易语言例程:008.m选n(生成法).e序号:009使用算法:固定算法问题:身份证升级15位升级到18位问题描述:将个人旧身份证15位升级到18位问题分析:公式:(aiWi)(mod 11)公式中:i-表示号码字符从由至左包括校验码在内的位置序号;ai-表示第i位置上的号码字符值;Wi-示第i位置上的加权因子,其数值依据公式Wi=2(n-1)(mod 11)计算得出。i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1aiWi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1易语言例程:009.身份证升级15位升级到18位.e序号:010使用算法:冒泡法问题:用冒泡法排序数字问题描述:使用冒泡排序法按顺序排序一批数字问题分析:首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换两记录的值。然后比较第二个和第三个记录的关键字,依次类推,直至最后一个记录也进行过比较。上述过程称为第一趟冒泡排序,其结果是最大值被安置到最后一个记录的位置上。进行第二趟排序,对前N-1个记录进行同样的排序。依次类推,当进行完N-1趟排序后,所有记录有序排列。备注:易语言例程:010.冒泡排序.e序号:011使用算法:推导法问题:九宫计算问题描述:1到9九个数字任意组合成一个三行三列的九宫。使每行没列没一斜行的和都相同计算出有多少种结果。问题分析:用两层循环试探所有可能的组合如果合格则显示不合格则淘汰备注:易语言例程:011.九宫计算.e序号:012使用算法:推导法问题:奶牛问题问题描述:一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛。 假设每次生的都是母牛,并且也遵守4年才生育并生母牛的原则。 问n年之后多少头牛?问题分析:因为初试奶牛已经1岁,可以将规律计算为:年数: 1 2 3 4 5 6 7 8 9 10奶牛年龄 2 3 4 5 6 7 8 9 10 11牛: 1 1 2 3 4 5 7 9 11 13通过上面规律可以推导出结果。备注:易语言例程:012. 奶牛问题.e序号:013使用算法:问题:求阶乘问题描述:输入一个整数,求出其阶乘。问题分析:0的阶乘等于1,1的阶乘等于1N的阶乘等于N乘以(N-1)的阶乘由此可以断定N的阶乘是1*2*3*4.(n-1)*n备注: 易语言例程:013. 阶乘计算.e序号:014使用算法:二分法问题:折半查找问题描述:10个篮子里分别放着10种好吃的(无重复)水果是按编号大小顺序放在110号篮子。怎样快速找到水果?问题分析:折半查找的基本思想:设查找元素储存在一个一维数组中,已经按关键字递增(或递减)的方式排列的情况下,可进行折半查找。其方法是:首先将要查的关键字值与数组中间位置上的记录的关键字比较.”1 若相等,则查找成功;2 若大于中间位置的关键字则说明要查记录只可能在后半段中,下一步应在后半部分再进行折半查找;3 若小于中间位置关键字说明要查记录只可能在前半部分,下一步应该在前半部分再进行折半查找。逐步缩小范围直到查找成功或子表为空时失败为止。备注: 易语言例程:014.折半查找.e序号:015使用算法:求最大值,求最小值,求平均数问题:给歌手打分问题描述:在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1100分。选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。求了其中一个选手的最后得分。问题分析:要求出歌手的得分,首先将个评委的分数相加在一起,接着找出个评委中的最高分和最低分,将前面求出的和减去这个最高分和最低分,得出的结果再除以,最后的结果为歌手的得分。备注:这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。易语言例程:015.给歌手打分.e序号:016使用算法:求最大不下降序列问题:航线设置问题描述:美丽的莱茵河畔,每边都分布着N个城市,两边的城市都是唯一对应的友好城市,现需要在友好城市开通航线以加强往来.但因为莱茵河常年大雾,如果开设的航线发生交叉现象就有可能出现碰船的现象.现在要求近可能多地开通航线并且使航线不能相交!问题分析:用一个数组来存放对应的友好城市的代码和友好城市的对数,然后在规划时先从倒数第二个城市开始,找出可以设置的航线条数和下一条航线开始的城市,如果正在规划的城市的航线数大于已知的航线条数,则存储这个航线条数和城市的代码,这样一直找下去,把最多的航线数都找出来,最后把最多的航线数和对应的友好城市显示出来。备注: 易语言例程:016.航线设置.e序号:017使用算法:回溯法问题:数字全排列问题描述:任意给出从1到N的N个连续的自然数,求出这N个自然数的各种全排列。如N=3时,共有以下6种排列方式:123,132,213,231,312,321。问题分析:数字不能重复,N由键盘输入(N b - c -ax y倒酒的规则如下:1) 按a - b - c -a的顺序;2) b倒空后才能从a中取3) c装满后才能向a中倒备注: 易语言例程:031.拉丁方.e 序号:032使用算法:递归法问题:皇后问题问题描述:国际象棋中皇后可以攻击所在行,列,斜线上的每一个位置,按照此规则要在一个n*n的棋盘上放n个皇后使每一个皇后都不互相攻击。问题分析:(1) 引入1个数组模拟棋盘上皇后的位置皇后位置数组j=4,表示第j列,第皇后位置数组j行有皇后引入3个工作数组行数组k=1,表示第k行没有皇后右高左低数组k=1,表示第k条右高左低的斜线上没有皇后左高右低数组k=1,表示第k条左高右低的斜线上没有皇后观察棋盘找到规律同一右高左低的斜线上的方格,它们的行号和列号之和相等;同一左高右低的斜线上的方格,它们的行号和列号只差相等;开始时,所有行和斜线上都没有皇后,从第一列的第一行配置第一个皇后开始,在第m列的皇后位置数组m行放置了一个合理的皇后之后,准备考察第m+1列时,在数组 行数组,右高左低数组,左高右低数组中为第m列,皇后位置数组m的位置设定有皇后标志如果按此放置位置得不到结果,则把当前列中有皇后标记改为无皇后标记。依次类推当在棋盘最后一列上也找到合适的位置后得到结果。通过上面规律可以推导出结果。备注: 易语言例程:032.皇后问题.e 序号:033使用算法:递归法问题:背包问题问题描述:随机出现十种物品,每个重量100千克以内。设定一个背包的载重上限,计算出一种装物品的方法使物品重量正好等于背包载重上限。问题分析:对每个物品考虑选择放入和不放入背包两种情况首先,考查物品被放入的情况,这种可能性当且仅当包含它不会超出背包上限时才是可行的。继续考查下一个物品。其次,还要考查物品不被放入背包的情况,这种可能性当且仅当不包含物品其它物品也能找到合理的组合。考查完物品后,继续考查下一个物品依次类推,最终找到一个合理组合或没有合理组合备注: 易语言例程:033.背包问题.e 序号:034使用算法:循环判断问题:角谷猜想问题描述:日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。问题分析:判断给定的一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,一直到结果变为,并且将每一步的运算过程和得到的新的自然数显示出来。通过上面规律可以推导出结果。备注: 易语言例程:034.角谷猜想.e 序号:035使用算法:穷举法问题:邮票组合问题描述:某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?问题分析:将问题进行数学分析,不同张数和面值的邮票组成的邮资可用下列公式计算: S=3*i+5*j 其中i为3分邮柰的张数,j为5分的张数 按题目的要求,3分的邮票可以取0、1、2、3、4张,5分的邮票可以取0、1、2、3张。采用穷举方法进行组合,可以求出这些不同面值不同张数的邮标组合后的邮资。备注: 易语言例程:035.邮票组合.e 序号:036使用算法:递推法问题:贮油点问题描述:一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,卡车总载油能力为500公升。显然卡车一次是过不了沙漠的。因此司机必须设法在沿途建立几个储油点,使卡车能顺利穿越沙漠,试问司机如何建立这些储油点?每一储油点应存多少油,才能使卡车以消耗最少油的代价通过沙漠?问题分析:编程计算及打印建立的贮油点序号,各贮油点距沙漠边沿出发的距离以及存油量。No. Distance(k.m.) oil(litre)1 X X X X2 X X X X3 X X X X设disi 为第i个贮油点至终点(i=0)的距离;oili 为第i个贮油点的存贮油量;我们可以用倒推法来解决这个问题。从终点向始点倒推,逐一求出每个贮油点的位置及存油量。从贮油点i向贮油点i+1倒推的策略是,卡车在点i和点i+1间往返若干次。卡车每次返回i+1处时正好耗尽500公升汽油,而每次从i+1出发时又必须装足500公升汽油。两点之间的距离必须满足在耗油最少的条件下使i点贮足i*500分升汽油的要求(0=i=n1)。具体地讲,第一个贮油点i=1应距终点i=0处500km且在该处贮藏500公升汽油,这样才能保证卡车能由i=1处到达终点i=0处这就是说 dis1=500 oil1=500;为了在i=1处贮藏500公升汽油,卡车至少从i=2处开两趟满载油的车至i=1处。所以i=2处至少贮有2*500公升汽油,即oil2=500*2=1000。另外,再加上从i=1返回至i=2处的一趟空载,合计往返3次。三次往返路程的耗油量按最省要求只能为500公升 。即d12=500/3kmdis2=dis1+d12=dis1+500/3依此类推,为了在i=k处贮藏k*500公升汽油,卡车至少从i=k+1处开k趟满载车至i=k处,即oilk+1=k+1*500=oilk+500,加上从i=k处返回i=k+1的k-1趟返程空间,合计2k-1次。这2k-1次总耗油量按最省要求为500公升,即 dk,k+1=500/(2k-1)disk+1=disk+dk,k+1=disk+500/(2k-1);通过上面规律可以推导出结果。备注: 易语言例程:036.贮油点.e 序号:037使用算法:循环判断问题:分解质因数问题描述:将一个正整数分解质因数问题分析:问题分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:(1) 如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。(2) 如果nk,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n, 重复执行第一步。(3) 如果n不能被k整除,则用k+1作为k的值,重复执行第一步,循环求解。备注: 易语言例程:037.分解质因数.e 序号:038使用算法:进制算法、文本分析问题:任意进制转换(大数)问题描述:将任意的一个正整数进行-进制之间的转换问题分析:利用易语言大数支持库,用文本分析的方法进行转换,注意不能用基本数据类型,不然数值过大就会溢出备注: 易语言例程:038.任意进制转换(大数).e 序号:039使用算法:常用公式问题:计算星期几问题描述:计算任何一天是星期几问题分析:最常见的公式:W = Y-1 + (Y-1)/4 - (Y-1)/100 + (Y-1)/400 + D Y是年份数,D是这一天在这一年中的累积天数,也就是这一天在这一年中是第几天。备注: 易语言例程:039.计算星期几(常用公式).e 序号:040使用算法:蔡勒公式问题:计算星期几问题描述:计算任何一天是星期几问题分析:蔡勒(Zeller)公式w=y+y/4+c/4-2c+26(m+1)/10+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数); m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日; 代表取整,即只要整数部分。备注: 易语言例程:040.计算星期几(蔡勒公式).e序号:041使用算法:倒推法问题:猴子吃桃子问题描述:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。问题分析:采取逆向思维的方法,从后往前推断。备注: 易语言例程:041.猴子吃桃子.e序号:042使用算法:贪心法问题:马踏棋盘问题描述:在8 8的国际象棋棋盘上,从任意指定的方格出发,为马寻找一条走遍棋盘每一格并且只经过依次的一条路径,如果找到请显示出来。问题分析:熟悉国际象棋的人都知道,马在某个方格,可以在一步内到达的不同位置最多有8个。 如图所示: #4#3# 5#0#2 6#1 #7#8# (1)对马走的方法可以设定一个顺序,如当前位置在棋盘的(i,j)方格,下一个可能的位置依次为:(i+2,j+1),(i+1,j+2),(i-1,j+2),(i-2,j+1),(i-2,j-1),(i-1,j-2),(i+1,j-2),(i+2,j-1),实际可以走的位置很明显仅仅限于还未走过的和不越出边界的那些位置。 (2)这里我们定义马在一步内实际可以走的位置数为马在当前位置的出口数,此外,为便于程序的统一处理,这里引入两个数组 “行变化数组”和“列变化数组”,分别储存8种可能走法对马当前所在位置的横纵坐标的增量。 (3)本题用贪心法策略求解。 当马处于某一位置时,其选择下一位置的准则为:从马当前位置所允许走的位置中,选择出口数最少的哪个位置。如马的当前位置只有3个出口,它们的出口数分别为4,2,3,则程序就选择出口数为2的那个出口。 算法简单描述 马从棋盘第一行第一列位置开始出发; 预设着法选择顺序控制变量“方法编号”为1; 循环判断首() 模拟棋盘数组初始化为0; 行号=起始行号;列号=起始列号; 计次循环首(63,当前遍历步数) 如果(马当前位置没有出口) 返回(-1) 否则 行号按返回方法改变;列号按返回方法改变。 在棋盘相对位置记录为第几步骤; 如果(找到解) 输出模拟棋盘数组; 终止循环; 否则 方法编号=方法编号+1; 循环判断尾(没有找到解) 上述算法在整个找解的过程一直向前,所以能非常快地找到解。但是对于某些开始位置,实际上有解可程序第一次找不到解,则程序只要变换8中可能出口的顺序,就能找到解。考虑到这种变换8种方法的情况,程序引用“方法编号“用于控制8种可能走法的顺序。开始为1时不能找到解,就让方法编号加1,重新找解。备注: 易语言例程:042.马踏棋盘.e序号:043使用算法:求余数问题:打鱼还是晒网问题描述:中国有句俗语叫“三天打鱼两天晒网”。某人从1990年1月1日起开始“三天打鱼两天晒网”,问这个人在以后的某一天中是“打鱼”还是“晒网”。问题分析:根据题意可以将解题过程分为三步:1)计算从1990年1月1日开始至指定日期共有多少天;2)由于“打鱼”和“晒网”的周期为5天,所以将计算出的天数用5去除;3)根据余数判断他是在“打鱼”还是在“晒网”; 若余数为1,2,3,则他是在“打鱼” 否则是在“晒网” 在这三步中,关键是第一步。求从1990年1月1日至指定日期有多少天,要判断经历年份中是否有闰年,二月为29天,平年为28天。闰年的方法可以用伪语句描述如下: 如果 (年能被4除尽 且 不能被100除尽)或 能被400除尽) 则 该年是闰年; 否则 不是闰年。易语言中判断能否整除可以使用求余运算(即求模)备注: 易语言例程:043.打鱼还是晒网.e序号:044使用算法:回朔法问题:九位累进可除数问题描述:求九位累进可除数。所谓九位累进可除数就是这样一个数:这个数用到1到9这九个数字组成,每个数字刚好只出现一次。这九个位数的前两位能被2整除,前三位能被3整除.前N位能被N整除,整个九位数能被9整除。问题分析:问题本身可以简化为一个穷举问题:只要穷举每位数字的各种可能取值,按照题目的要求对穷举的结果进行判断就一定可以得到正确的结果。 问题中给出了“累进可除”这一条件,就使得我们可以在穷举法中加入条件判断。在穷举的过程中,当确定部分位的值后,马上就判断产生的该部分是否符合“累进可除”条件,若符合,则继续穷举下一位数字;否则刚刚产生的那一位数字就是错误的。这样将条件判断引入到穷举法之中,可以尽可能早的发现矛盾,尽早地放弃不必要穷举的值,从而提高程序的执行效率。为了达到早期发现矛盾的目的,不能采用多重循环的方法实行穷举,那样编出的程序质量较差。程序中使用的算法不再是穷举法,而是回朔法。备注: 易语言例程:044.九位累进可除数.e序号:045使用算法:问题:十进制转为二进制问题描述:十进制转为二进制并显示问题分析:将十进制数转换成二进制数,一般采用除二取余法。如果用一个数组b来存入二进制数,可以依次把所得的余数存入b0,b1,bn,最后按bn,bn-1,b1,b0的顺序输出这些余数,就得到了相应的二进制数。备注: 易语言例程:045.十进制转为二进制.e序号:046使用算法:递归法问题:九连环问题描述:九连环游戏是中国人自己发明的,它的历史非常悠久,据说是起源于战国时期。九连环主要是由一个框架和九个圆环组成:每个圆环上连有一个直杆,而这个直杆则在后面一个圆环内穿过,九个直杆的另一端用一块木板或圆环相对固定。计算九连环游戏中取下某一个环需要几步问题分析:正确的拆解是先以第 9 环为目标,先拆下它,简化为拆一个 8 连环。接着再也第 8 环为目标,拆下它,简化为拆一个 7 连环。以此类推,直至全部拆解。深刻的理解了上面所说的规律后,就会发现,安装上第 9 环后,问题可以被简化为装一个 7 连环,而当装上第 7 环后,问题就被简化为装一个 5 连环了.,最后找出九连环跟递归一定有联系。那么整个游戏所需步数=取下第1个环所需步数+.+取下第9个环所需步数。我们就用递归来实现这个问题。备注: 易语言例程:046.九连环.e序号:047使用算法:推导的公式问题:找窃贼问题描述:公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说:“乙没有偷,是丁偷的。”乙说:“我没有偷,是丙便的。” 丙说:“甲没有偷,是乙偷的。”丁说:“我没有偷。”请根据这四人的答话判断谁是盗窃者。问题分析:假设A、B、C、D分别代表四个人,变量的值为1代表该人是窃贱。 由题目已知:四人中仅有一名是窃贱,且这四个人中的每个人要么说真话,要么说假话,而由于甲、乙、丙三人都说了两句话:“X没偷,X偷了”,故不论该人是否说谎,他提到的两人中必有一人是小偷。故在列条件表达式时,可以不关心谁说谎,谁说实话。这样,可以列出下列条件表达式:甲说:”乙没有偷,是丁偷的。”B+D=1乙说:“我没有偷,是丙偷有。”B+C=1丙说:“甲没有偷,是乙偷的。”A+B=1丁说:“我没有偷。”A+B+C+D=1其中丁只说了一句话,无法判定其真假,表达式反映了四人中仅有一名是窃贱的条件。根据上面所列出的公式可以编程找出窃贼。备注: 易语言例程:047.找窃贼e序号:048使用算法:问题:哥德巴赫猜想问题描述:验证哥德巴赫猜想:两个素数之和表示偶数。问题分析:我们容易得出:4=2+2, 63+3,85+3,10=7+3,12=7+5,14=11+3,这个问题是德国数学家哥德巴赫(CGoldbach,1690-1764)于1742年6月7日在给大数学家欧拉的信中提出的,所以被称作哥德巴赫猜想。同年6月30日,欧拉在回信中认为这个猜想可能是真的,但他无法证明。备注: 易语言例程:048.哥德巴赫猜想.e序号:049使用算法:递推法问题:最小生成数问题描述:按递增次序生成集合M的最小的n个数。M定义如下:(1)1M(2)若xM,则2x+1M,3x+1M(3)无别的数属于M问题分析:要生成数组M中的最小的n个数,首先1为这n个数中的第一个数,再由1递推出余下的n-1个数。设n个数在数组M中,2x+1与3x+1均做为一个队列,从两队列中选一排头(数值最小者)送入数组M中,所谓“排头”就是队列中尚未选入M的第一个小的数.用“下标变量2”表示2x+1这一列的排头,用下标变量3表示3x+1这一列的排头。通过上面规律可以推导出结果。备注: 表示属于易语言例程:049.最小生成数.e序号:050使用算法:问题:农夫过河问题描述:农夫过河。一个农夫带着一只狼,一只羊和一些菜过河。河边只有一条一船,由 于船太小,只能装下农夫和他的一样东西。在无人看管的情况下,狼要吃羊,羊 要吃菜,请问农夫如何才能使三样东西平安过河。只求出一种方案即可问题分析:只要分清楚狼羊菜三者之间的关系,可以通过判断目前状态,来确定下一步走法。备注: 易语言例程:050. 农夫过河.e序号:051使用算法:分枝界定法问题:旅游最省钱路径问题描述:设有n个城市(或景点),今从某市出发遍历各城市,使之旅费最少(即找出一条旅费最少的路径)。问题分析:设矩阵元素aij 表示从第i号城市到第j号城市之旅费。并设城市间往返旅费可以不等(即aij aji )。aii 是没有意义的,由于问题是求最少,因此aii 不应为零,今试为无穷()。各城市间旅费如下表: 17 13 24 10 10 20 9 6 17 29 21 28 12 10 22 19 12 18 31 20 问题的算法是在表每行中找最小元素,并用该数减该行非元素。再对每列也施同样工作,形成一个新表(保证每行、每列均不少于个为零),所有减数累加为min(其含义为旅费下界,即旅费不会少于min)。旅行路程因成环路,故可设起点是第号城市。若选第i号到第j号城市,则表上bij 表示还需旅费,同时由于选了ij,则i不可能再选向其它城市,则第i行全填,同理,由于j已由i过来,则第j城市不可能再由其它城市过来,第j列也全填上。对新矩阵再施每行至少有一个,每列至少有一个,找出余下城市遍历所需旅费下界mj 。对于不同的j,比较mj +bij 以最小的一个为选定从i到达的城市,并将选择路径记下。如此重复直到选完。备注: 易语言例程:051.旅游最省钱路径.e序号:052使用算法:问题:马克思手稿中的数学题问题描述:马克思手稿
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 施工员考试题
- 土地承包合同终止及农业资源资产化运营合作协议模板
- 绿色单位借款合同环保节能技术应用合作协议
- 航空航天企业员工薪资及航天器研发合同范本
- 工程欠款转借款及还款期限及违约责任协议书
- 2025年江苏扬州高中合格考试试题及答案
- 2025年租车打车行业研究报告及未来发展趋势预测
- 数字艺术创作平台创新创业项目商业计划书
- 大豆皮膳食纤维营养补充剂创新创业项目商业计划书
- 小白菜卡通形象创新创业项目商业计划书
- 2025江西上饶市属国有企业第一批次招聘105人考试参考试题及答案解析
- GB/T 7713.4-2025信息与文献编写规则第4部分:数据论文
- 2025关于上海市的劳动合同范本
- 2025年全国通信专业技术人员职业水平考试(通信专业实务终端与业务)(高、中级)练习题及答案
- 土地出让课件
- 法律职业资格考试客观题(试卷一)试题与参考答案(2025年)
- 江西中寰投资集团下属公司招聘笔试题库2025
- 弱电施工安全培训课件
- 特种作业考试试题(含答案)
- 2025年储能应用行业研究报告及未来行业发展趋势预测
- 2025-2030中国游戏音频技术发展与沉浸式体验设计趋势报告
评论
0/150
提交评论