用Matlab求水仙花數(shù)完美數(shù)回文數(shù)和親合數(shù)_第1頁(yè)
用Matlab求水仙花數(shù)完美數(shù)回文數(shù)和親合數(shù)_第2頁(yè)
用Matlab求水仙花數(shù)完美數(shù)回文數(shù)和親合數(shù)_第3頁(yè)
用Matlab求水仙花數(shù)完美數(shù)回文數(shù)和親合數(shù)_第4頁(yè)
用Matlab求水仙花數(shù)完美數(shù)回文數(shù)和親合數(shù)_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、題目:對(duì)深圳市人口及醫(yī)療的預(yù)測(cè) 編號(hào): 10055 隊(duì)長(zhǎng) 李 榮 姓名: 李 榮 (09041117) 王 遂 (09041124) 李春曉 (09055025)1.水仙花數(shù):(1)題目若一個(gè)三位數(shù)自然數(shù)的各位數(shù)的各位數(shù)字的立方和等于該數(shù)本身,則稱該數(shù)為水仙花數(shù),例如,153=13+53+33,所以153為水仙花數(shù),編程計(jì)算所有水仙花數(shù).(2)分析問(wèn)題:本題特點(diǎn)在于一個(gè)數(shù)的各個(gè)位數(shù)立方和與其本身的關(guān)系很明確且很簡(jiǎn)單,可以用if語(yǔ)句或find語(yǔ)句來(lái)完成.如果用if語(yǔ)句,則又有兩種選擇:1.命一個(gè)三位數(shù),再表示其各個(gè)位數(shù)的數(shù)字;2.命各個(gè)位數(shù)的數(shù)字,再表示該三位數(shù).如果用find語(yǔ)句,其思路與if

2、語(yǔ)句類似.(3)問(wèn)題求解: 方法一:for x=100:1:999 a=fix(x/100); b=fix(x/10-10*a); c=x-100*a-10*b; if x=a3+b3+c3 x endend 方法二:for x=1:1:9 for y=0:1:9 for z=0:1:9 if x3+y3+z3=100*x+10*y+z m=100*x+10*y+z end endendend 方法三:shui=100:999;i=floor(shui/100);j=floor(mod(shui,100)/10);k=floor(mod(shui,10);p=i.3+j.3+k.3;shui(

3、find(p=shui)(4)結(jié)論及分析: 通過(guò)實(shí)驗(yàn),結(jié)果正確,證明分析無(wú)誤.(5)結(jié)果: 153 370 371 4072.回文數(shù)(1)題目:對(duì)于一個(gè)自然數(shù),若將各位數(shù)字倒序排出,加到原數(shù)字上,反復(fù)多次,若能得到一個(gè)從左到右讀和從有到左讀完全一樣的數(shù),則稱該自然數(shù)能產(chǎn)生回文數(shù).通過(guò)編程計(jì)算,你能找出多少個(gè)能產(chǎn)生回文數(shù)的數(shù),又能找到多少不能產(chǎn)生回文數(shù)的數(shù),二者的最小數(shù)是多少?(2)分析問(wèn)題:本題關(guān)鍵在于如何將一個(gè)數(shù)的各個(gè)數(shù)位的數(shù)字倒序排出,并加到原數(shù)上.又由題目知必然要用到循環(huán)語(yǔ)句.(3)假設(shè):由于將一個(gè)數(shù)的各個(gè)數(shù)位的數(shù)字倒序排出,并不斷加到原數(shù)上比較困難,我們假設(shè)該數(shù)為四位數(shù)并假設(shè)倒序排出加

4、到原數(shù)得到的新數(shù)不超過(guò)10000,于是有了下面的簡(jiǎn)單程序for a=0:9; for b=0:9; for c=0:9; for d=0:9; x=1000*a+100*b+10*c+d; while x<10000; if a=d&b=c; x=x; else x=x+1000*d+100*c+10*b+a; end end end end x endend實(shí)際操作時(shí),我們發(fā)現(xiàn):該程序不僅具有假設(shè)中的缺陷,而且在實(shí)際操作中運(yùn)行速度很慢,無(wú)法得到結(jié)果,所以必須將方法優(yōu)化。后來(lái)我們使用取余和取整操作,借助循環(huán)語(yǔ)句while,得出如下程序,突破了本題的關(guān)鍵。for a=1:100 b

5、=0;c=0; x=a; while x>=10 b=mod(x,10); x=fix(x/10); c=10*c+b; end c=10*c+x;此程序?qū)崿F(xiàn)了一個(gè)數(shù)的倒序操作,并不用考慮位數(shù)問(wèn)題.(4)問(wèn)題求解: for a=1:100c=0; x=a; while x>=10 b=mod(x,10); x=fix(x/10); c=10*c+b; end c=10*c+x; A=a+c; B=0; y=A; while y>=10 C=mod(y,10); y=fix(y/10); B=10*B+C; end B=10*B+y; while B=A A=A+B; m=0;

6、 z=A; while z>=10 n=mod(z,10); z=fix(z/10); m=10*m+n; end m=10*m+z; B=m; enda,Aend (5)結(jié)論及分析: 修改后的程序通過(guò)四個(gè)while循環(huán)語(yǔ)句完成了(1)數(shù)字的倒序排出(2)倒序排出數(shù)與原數(shù)無(wú)上界的不斷相加(3)相加之和倒序、正序排列所得數(shù)的比較,得出了正確的的結(jié)果。運(yùn)行速度較快.(6)結(jié)果: 最小的能產(chǎn)生回文數(shù)的數(shù)是1,100個(gè)數(shù)中找到了98個(gè)能產(chǎn)生回文數(shù)的數(shù).其中89,98運(yùn)算結(jié)果為:1.0e+012 * 1.0e+012 * 0.0000 8.8132 0.0000 8.8132它們是不能產(chǎn)生回文數(shù)的

7、數(shù),則得到兩個(gè)這樣的數(shù),最小的為89.(7)結(jié)論推廣: 在命a的范圍時(shí),我們的范圍是1到100,而事實(shí)上a可以任意取值,故可以通過(guò)國(guó)修改a的范圍算出任意區(qū)間上的結(jié)果.3.完美數(shù)(1)題目: 對(duì)于一個(gè)數(shù)而言,若它的真因子之和等于數(shù)本身,則稱該數(shù)為完美數(shù)。通過(guò)編程計(jì)算,你能找到多少個(gè)完美數(shù)。(2)分析問(wèn)題:問(wèn)題的關(guān)鍵在于找出一個(gè)數(shù)的真因子,通過(guò)使用mode命令可以找到其所有因子。然后利用for循環(huán)得到因子之和,最后用if語(yǔ)句使之與原數(shù)相等而導(dǎo)出結(jié)果。(3)假設(shè):由于暫時(shí)沒(méi)有想到得到真因子的方法,我們忽略了“真”字,于是得出下列程序:for a=1:1000; c=0; for b=1:1000;

8、if mod(a,b)=0; c=c+b; end end if c=a a endend結(jié)果只得了一個(gè)a=1. 于是我們改換思路,將以上程序中a除以b的商當(dāng)做真因子并作了部分修改,得到了結(jié)果。在做親和數(shù)實(shí)驗(yàn)時(shí),為了將完美數(shù)從結(jié)果中去掉,我們添加了變量之間的不等命令。從中我們得到了啟示,對(duì)以上程序添加了a>b命令,再次得到結(jié)果。(4)問(wèn)題求解:方法一for a=1:1000; c=0; for b=1:1000; if mod(a,b)=0&a>b; c=c+b; end end if c=a a endend方法二for a=1:1000; s=0; for b=2:10

9、00; if mod(a,b)=0; c=a/b; s=s+c; end end if s=a s endend (5)結(jié)論及分析:通過(guò)對(duì)自己原來(lái)固有思維的大膽突破,我們得出了結(jié)果;通過(guò)對(duì)原來(lái)程序的修改,我們?cè)俅蔚玫浇Y(jié)果。修改后的程序運(yùn)行較快,結(jié)果正確。(6)結(jié)果:一千以內(nèi)的完美數(shù)有:6 ,28, 496(7)結(jié)論推廣:程序中的a為1到1000,而a的取值可以時(shí)任意區(qū)間的自然數(shù),可以通過(guò)修改a的范圍得到其他結(jié)果。4.親和數(shù)(1)題目:親和數(shù)又叫友好數(shù),是指兩個(gè)自然數(shù),其中每個(gè)自然數(shù)的真因數(shù)之和等于另一個(gè)數(shù)。通過(guò)編程計(jì)算,你能得到多少對(duì)親和數(shù)。(2)分析問(wèn)題:此題實(shí)際上是在完美數(shù)的基礎(chǔ)上的一個(gè)拓

10、展,故其思想與完美數(shù)基本一樣。(3)假設(shè):我們假設(shè)親和數(shù)可以是兩個(gè)相同的完美數(shù),于是將完美數(shù)的方法二分別用于兩類數(shù)上,并進(jìn)行了適當(dāng)?shù)男薷模贸鲆韵鲁绦颍篺or a=1:1000; x=0; for b=2:1000; if mod(a,b)=0; c=a/b; x=x+c; end end for l=1:1000 y=0; for m=2:1000; if mod(l,m)=0; n=l/m; y=y+n; end end if y=a&l=x; a,l end endend此程序有兩大缺點(diǎn):1、運(yùn)行速度慢;2、沒(méi)有將完美數(shù)排除在外。于是我們又做了些優(yōu)化,將以上程序中的x直接取代l,

11、于是得出了運(yùn)行較快的程序,而這樣無(wú)疑是將運(yùn)算范圍縮小了一半。此外,我們添加了a=l命令,解決了第二個(gè)缺陷。同時(shí)這個(gè)命令使我們得到了啟示,于是得出了完美數(shù)的方法一,也隨即得出了親和數(shù)的第三、四種方法。(4)問(wèn)題求解:方法一for a=1:10000; x=0; for b=2:10000; if mod(a,b)=0; c=a/b; x=x+c; end end for l=1:10000 y=0; for m=2:10000; if mod(l,m)=0; n=l/m; y=y+n; end end if y=a&l=x&a=l; a,l end endend方法二for a=

12、1:20000; x=0; y=0; for b=2:20000; if mod(a,b)=0; c=a/b; x=x+c; end end for m=2:10000; if mod(x,m)=0; n=x/m; y=y+n; end end if y=a&a=x; a,x endend方法三for a=1:10000; c=0; for b=1:10000; if mod(a,b)=0&a>b; c=c+b; end end for x=1:10000; z=0; for y=1:10000; if mod(x,y)=0&x>y; z=z+y; end

13、end if c=x&z=a&x=a; a,x end endend方法四for a=1:10000; c=0; z=0; for b=1:10000; if mod(a,b)=0&a>b; c=c+b; end end for y=1:10000; if mod(c,y)=0&c>y; z=z+y; end end if a=z&a=c a,c endend(5)結(jié)論及分析:雖然4種方法都可得出結(jié)果,但通過(guò)優(yōu)化的方法,明顯縮短了運(yùn)算時(shí)間。(6)結(jié)果:我們得出了10000以內(nèi)的所有親和數(shù):220 284 284 220 1184 1210 1210 1184 2620 2924 2924 2620 5020 5564 5564 5020 6232 6368 6368 6232(7)結(jié)論推廣:程序中的運(yùn)算范圍我們定為1到10000,但通過(guò)改變對(duì)變量的賦值范圍,就可以得出其他更多的結(jié)果實(shí)驗(yàn)感想本次實(shí)驗(yàn)我們初步了解了MATLAB的使用方法,尤其對(duì)簡(jiǎn)單編程有了進(jìn)一步的實(shí)踐,并掌握了一些基本操作方法和編程思想。通過(guò)實(shí)驗(yàn),電腦軟件的強(qiáng)大功能讓我們認(rèn)識(shí)到了其對(duì)數(shù)學(xué)研究的重要性和必要性。由于第一次接觸MATLAB,在實(shí)驗(yàn)過(guò)程中我們遇到了不少困難,但我們通過(guò)查閱書本、互相討論、反復(fù)研究以及向?qū)W長(zhǎng)、老師請(qǐng)教等途徑將它們一一克服。尤

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論