用Matlab求水仙花数,完美数,回文数和亲合数.doc

用Matlab求水仙花数,完美数,回文数和亲合数.doc

ID:53102872

大小:234.71 KB

页数:19页

时间:2020-04-01

用Matlab求水仙花数,完美数,回文数和亲合数.doc_第1页
用Matlab求水仙花数,完美数,回文数和亲合数.doc_第2页
用Matlab求水仙花数,完美数,回文数和亲合数.doc_第3页
用Matlab求水仙花数,完美数,回文数和亲合数.doc_第4页
用Matlab求水仙花数,完美数,回文数和亲合数.doc_第5页
资源描述:

《用Matlab求水仙花数,完美数,回文数和亲合数.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、关于一些特殊自然数的研究题目:对深圳市人口及医疗的预测编号:10055队长李荣姓名:李荣(09041117)王遂(09041124)李春晓(09055025)18关于一些特殊自然数的研究1.水仙花数:(1)题目若一个三位数自然数的各位数的各位数字的立方和等于该数本身,则称该数为水仙花数,例如,153=1^3+5^3+3^3,所以153为水仙花数,编程计算所有水仙花数.(2)分析问题:本题特点在于一个数的各个位数立方和与其本身的关系很明确且很简单,可以用if语句或find语句来完成.如果用if语句,则又有两种选择:1.命一个三位数,再表示其各个位数的数字;2.命各个位数的数字,再表示该三

2、位数.如果用find语句,其思路与if语句类似.(3)问题求解:方法一:forx=100:1:999a=fix(x/100);b=fix(x/10-10*a);c=x-100*a-10*b;ifx==a^3+b^3+c^3xendend18关于一些特殊自然数的研究方法二:forx=1:1:9fory=0:1:9forz=0:1:9ifx^3+y^3+z^3==100*x+10*y+zm=100*x+10*y+zendendendend方法三:shui=100:999;i=floor(shui/100);j=floor(mod(shui,100)/10);k=floor(mod(shui

3、,10));p=i.^3+j.^3+k.^3;shui(find(p==shui))(4)结论及分析:通过实验,结果正确,证明分析无误.(5)结果:15337037140718关于一些特殊自然数的研究2.回文数(1)题目:对于一个自然数,若将各位数字倒序排出,加到原数字上,反复多次,若能得到一个从左到右读和从有到左读完全一样的数,则称该自然数能产生回文数.通过编程计算,你能找出多少个能产生回文数的数,又能找到多少不能产生回文数的数,二者的最小数是多少?(2)分析问题:本题关键在于如何将一个数的各个数位的数字倒序排出,并加到原数上.又由题目知必然要用到循环语句.(3)假设:由于将一个数的

4、各个数位的数字倒序排出,并不断加到原数上比较困难,我们假设该数为四位数并假设倒序排出加到原数得到的新数不超过10000,于是有了下面的简单程序fora=0:9;forb=0:9;18关于一些特殊自然数的研究forc=0:9;ford=0:9;x=1000*a+100*b+10*c+d;whilex<10000;ifa==d&b==c;x=x;elsex=x+1000*d+100*c+10*b+a;endendendendxendend实际操作时,我们发现:该程序不仅具有假设中的缺陷,而且在实际操作中运行速度很慢,无法得到结果,所以必须将方法优化。后来我们使用取余和取整操作,借助循环语句

5、while,得出如下程序,突破了本题的关键。fora=1:100b=0;c=0;x=a;18关于一些特殊自然数的研究whilex>=10b=mod(x,10);x=fix(x/10);c=10*c+b;endc=10*c+x;此程序实现了一个数的倒序操作,并不用考虑位数问题.(4)问题求解:fora=1:100c=0;x=a;whilex>=10b=mod(x,10);x=fix(x/10);c=10*c+b;endc=10*c+x;A=a+c;B=0;y=A;whiley>=10C=mod(y,10);18关于一些特殊自然数的研究y=fix(y/10);B=10*B+C;endB=1

6、0*B+y;whileB~=AA=A+B;m=0;z=A;whilez>=10n=mod(z,10);z=fix(z/10);m=10*m+n;endm=10*m+z;B=m;end[a,A]end(5)结论及分析:修改后的程序通过四个while循环语句完成了(1)数字的倒序排出(2)倒序排出数与原数无上界的不断相加(3)相加之和倒序、正序排列所得数的比较,得出了正确的的结果。运行速度较快.18关于一些特殊自然数的研究(6)结果:最小的能产生回文数的数是1,100个数中找到了98个能产生回文数的数.其中89,98运算结果为:1.0e+012*1.0e+012*0.00008.81320

7、.00008.8132它们是不能产生回文数的数,则得到两个这样的数,最小的为89..(7)结论推广:在命a的范围时,我们的范围是1到100,而事实上a可以任意取值,故可以通过国修改a的范围算出任意区间上的结果.3.完美数(1)题目:对于一个数而言,若它的真因子之和等于数本身,则称该数为完美数。通过编程计算,你能找到多少个完美数。(2)分析问题:问题的关键在于找出一个数的真因子,通过使用mode命令可以找到其所有因子。然后利用for循环得到因子之

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。