Java程序設(shè)計與實踐(微課版)思政拓展-第二章-循環(huán)迭代_第1頁
Java程序設(shè)計與實踐(微課版)思政拓展-第二章-循環(huán)迭代_第2頁
Java程序設(shè)計與實踐(微課版)思政拓展-第二章-循環(huán)迭代_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

拓展閱讀:循環(huán)迭代的力量引言:在程序設(shè)計中,循環(huán)迭代(iteration)思想是一種強大的工具,它可以幫助我們解決各種復(fù)雜問題。比如,想要在存放成績數(shù)據(jù)的數(shù)組中查找最大值、最小值、求取平均值,對一個無序數(shù)組進行排序。循環(huán)迭代思想的引入:循環(huán)迭代思想部分源于數(shù)學(xué)中的迭代法,它通過重復(fù)執(zhí)行一系列操作來逐步逼近問題的解。比如,在數(shù)值計算中,迭代法可以用來解決方程組、求解函數(shù)的根、逼近圓周率等問題。在我們的生活中也普遍存在使用循環(huán)迭代思想來解決問題的例子。比如,設(shè)定健身目標時,人們通常會通過反復(fù)的鍛煉和逐步增加訓(xùn)練強度來提高體能和健康水平。開根號問題的引入:開根號是數(shù)學(xué)中常見的問題,它要求我們找到一個數(shù)的正平方根。在程序設(shè)計中,我們可以通過循環(huán)迭代的方法來求解開根號問題。通過不斷迭代,我們可以逐步逼近真實的開根號值,直到滿足一定的精度要求。程序設(shè)計實例:代碼2-38是一個使用循環(huán)迭代方法求解開根號的示例。代碼2-38:chpt02/SquareRootTest.javapublicclassSquareRootTest{ publicstaticvoidmain(String[]args){ testCalculateSquareRoot(); } publicstaticvoidtestCalculateSquareRoot(){ double[]testNumbers={0.0,-1,1.0,2.0,25.0,9999999.0,0.25,0.81}; for(doublenumber:testNumbers){ doubleresult=sqrt(number); System.out.println("對"+number+"求開根號:"+result); } } publicstaticdoublesqrt(doublenumber){ if(number<0){ returnDouble.NaN; } if(number==0){ return0; } doubleepsilon=1e-6;//誤差范圍 doublelow=0;//猜測的下限 doublehigh=Math.max(1,number);//猜測下限 doubleguess=(low+high)/2.0;//初始猜測值 intn=0; while(Math.abs(guess*guess-number)>epsilon){ n++; if(guess*guess<number){ low=guess; }else{ high=guess; } guess=(low+high)/2.0;//更新猜測值 } System.out.print("迭代了"+n+"輪!"); returnguess; }}程序輸出:對0.0求開根號:0.0對-1.0求開根號:NaN迭代了20輪!對1.0求開根號:0.9999995231628418迭代了21輪!對2.0求開根號:1.4142136573791504迭代了25輪!對25.0求開根號:5.000000074505806迭代了53輪!對9999999.0求開根號:3162.2775020543736迭代了0輪!對0.25求開根號:0.5迭代了18輪!對0.81求開根號:0.8999996185302734程序分析: 代碼15行的sqrt方法首先初始化一個區(qū)間的上下限low和high,分別代表開根號可能的最小值和最大值,。然后我們計算區(qū)間的中點guess,并根據(jù)guess*guess與c的對比來調(diào)整區(qū)間的上下限,其中high=Math.max(1,number);是為了更好地處理小于1的值。在while循環(huán)中,通過不斷重復(fù)判斷guess*guess與number的差的絕對值是否大于預(yù)定的精度epsilon,來決定是否跳出循環(huán)(小于epsilon則意味著猜測值已經(jīng)在所設(shè)定的精度范圍內(nèi),這時可結(jié)束循環(huán))。需注意的是,理論上來說epsilon值設(shè)定的越小所求得的guess值越精確,但所需迭代的輪數(shù)將越多。結(jié)合生活實踐和思政元素:循環(huán)迭代思想不僅在程序設(shè)計中有著廣泛的應(yīng)用,它也可以應(yīng)用到我們的日常生活和學(xué)習(xí)中。我們只有通過不斷努力和修正,不斷思考與練習(xí),才能逐不斷進步和成長。每一輪的重復(fù)看似簡單、變化不大,但卻很有意義。引經(jīng)據(jù)典:中國古代也有著不少名言能體現(xiàn)出“循環(huán)迭代”這種思想。荀子《勸學(xué)》中的“不積跬步,無以至千里?!币哺嬖V了我們要不斷累積微小的進步,才能達到遠大的目標。而我國南北朝時期的著名數(shù)學(xué)家祖沖之采用“割圓術(shù)”來求解圓周率的近似值,也包含了循環(huán)迭代的思想。割圓術(shù)簡要步驟如下:1.在一個半徑為r的圓內(nèi)繪制內(nèi)接正6多邊形,此時邊長等于半徑。2.再繪制正12邊形,可用勾股定理再次求得新的多邊形每邊的長。3.然后再分24、48邊形,一直分下去。邊數(shù)越多,所得的多邊形各邊長之和越接近圓的周長。4.最后使用邊長之和除以2*r,就可以得到圓周率。祖沖之使用這種方法算到24567邊形,從而得出的圓周率的值在3.1415926到3.1415927之間,這個結(jié)果在當時世界上是最為精確的圓周率近似值之一。這種迭代的過程,就像我們程序設(shè)計中的循環(huán)迭代一樣,通過重復(fù)的過程,不斷逼近最終的目標值。結(jié)語:循環(huán)迭代思想是程序設(shè)計中的重要思維方式,它可以幫助我們解決各種復(fù)雜問題(數(shù)值計算、模擬優(yōu)化、數(shù)據(jù)處理與分析等),一定要牢牢把握。現(xiàn)在流行的大語言模型(LargeLanguageModel)通過訓(xùn)練海量文本數(shù)據(jù),具有理解和生成自然語言的能力,而這個訓(xùn)練過程也是一個循環(huán)迭代、逐步優(yōu)化的過程。實際上學(xué)習(xí)Java編程語言本身也是一個循環(huán)迭代的過程,只要大家堅定地按照“理論學(xué)習(xí)、上課聽講、編程練習(xí)”這些步驟不斷循環(huán)迭代地堅持學(xué)下去,就可以逐步提升Java相關(guān)知識的儲備與Java編程技能水平。【思考與練習(xí)】修改代碼2-38SquareRootTest.java中的epsil

溫馨提示

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

最新文檔

評論

0/150

提交評論