設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算 課件 高中信息技術(shù)滬科版(2019)必修1_第1頁(yè)
設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算 課件 高中信息技術(shù)滬科版(2019)必修1_第2頁(yè)
設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算 課件 高中信息技術(shù)滬科版(2019)必修1_第3頁(yè)
設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算 課件 高中信息技術(shù)滬科版(2019)必修1_第4頁(yè)
設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算 課件 高中信息技術(shù)滬科版(2019)必修1_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

如何用Python語(yǔ)言編寫(xiě)計(jì)算點(diǎn)在圓內(nèi)的概率?用計(jì)算機(jī)計(jì)算圓周率--設(shè)計(jì)簡(jiǎn)單數(shù)值數(shù)據(jù)算法(第二課時(shí))設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算項(xiàng)目七3項(xiàng)目學(xué)習(xí)目標(biāo)02.探究和理解程序的選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)01.掌握數(shù)值數(shù)據(jù)的常用運(yùn)算設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算圓周率

隨機(jī)投點(diǎn)法是通過(guò)在正方形內(nèi)隨機(jī)投點(diǎn),用隨機(jī)模擬的方法來(lái)估算圓周率。請(qǐng)嘗試用Python語(yǔ)言,來(lái)計(jì)算圓周率。程序設(shè)計(jì)的一般過(guò)程

1.分析問(wèn)題

2.設(shè)計(jì)算法

3.編寫(xiě)程序

4.運(yùn)行調(diào)試

設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算圓周率

1.分析問(wèn)題(數(shù)學(xué)思路)

設(shè)落在圓形內(nèi)的豆子數(shù)為hits,總豆子數(shù)為darts,則:?jiǎn)挝粓A面積為π,并且內(nèi)切邊長(zhǎng)2的正方形,,落到圓里的概率乘以4就是π的值設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算圓周率

1.分析問(wèn)題(分析)

隨便投一個(gè)點(diǎn),這個(gè)記為(x,y)落在圓內(nèi),則到圓心的距離x^2+y^2<1例如投點(diǎn)10000次,落入圓內(nèi)次數(shù)hits,π的值為hits/10000*4以圓心為原點(diǎn),建立二維坐標(biāo)系:任務(wù)一:小組活動(dòng)數(shù)學(xué)思維分析隨機(jī)投點(diǎn)法判斷思路設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算圓周率

1.分析問(wèn)題(計(jì)算機(jī)角度)

使用計(jì)算機(jī)模擬隨機(jī)投豆(也就是投點(diǎn))的整個(gè)過(guò)程

這里涉及的數(shù)據(jù)變量有:總的投點(diǎn)數(shù)darts,每個(gè)點(diǎn)的坐標(biāo)值x、y,扇形區(qū)域的投點(diǎn)數(shù)hits,圓周率的近似值pi。設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

2.設(shè)計(jì)算法(描述方法:自然語(yǔ)言,流程圖,偽代碼)算法中哪幾步在重復(fù)執(zhí)行?思考設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

2.設(shè)計(jì)算法(描述方法:自然語(yǔ)言,流程圖,偽代碼)流程圖描述開(kāi)始令hits=0,i=0輸入總的投點(diǎn)數(shù)darts獲取x,y的隨機(jī)值i<dartsi=i+1計(jì)算圓周率的近似值輸出圓周率的近似值結(jié)束是是否否hits=hits+1x^2+y^2<1自然語(yǔ)言描述任務(wù)二:根據(jù)自然語(yǔ)言描述,補(bǔ)全流程圖設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

3.編寫(xiě)計(jì)算圓周率程序開(kāi)始令hits=0,i=0輸入總的投點(diǎn)數(shù)darts獲取x,y的隨機(jī)值i<dartsi=i+1計(jì)算圓周率的近似值輸出圓周率的近似值結(jié)束是是否否hits=hits+1x^2+y^2<1fromrandomimportrandomdarts=int(input('請(qǐng)輸入總的投點(diǎn)數(shù):'))hits=0foriinrange(darts):x,y=random(),random()if():

pi=4*(hits/darts)print('pi的值是',pi)x*x+y*y<=1hits=hits+1任務(wù)四:個(gè)人活動(dòng),根據(jù)流程圖,補(bǔ)全程序

#調(diào)用隨機(jī)函數(shù)設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

hits=hits+1x^2+y^2<11.關(guān)系運(yùn)算符條件表達(dá)式程序中表示判斷條件的式子稱(chēng)為條件表達(dá)式,它由關(guān)系運(yùn)算或邏輯運(yùn)算構(gòu)成,執(zhí)行的結(jié)果為布爾值True或False.Python運(yùn)算符數(shù)學(xué)符號(hào)名稱(chēng)示例(dist=0.87)結(jié)果<

<

小于dist<1True<=≤小于等于dist<=1True>

>

大于dist>1False>=≥大于等于dist>=1False===等于dist==1False!=≠不等于dist!=1Truex^2+y^2<1例如:判斷一個(gè)數(shù)X是否為100到200之間的一個(gè)數(shù)。條件表達(dá)式為:100<=x<=200也可以寫(xiě)成x<=200and100<=x設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

常用的邏輯運(yùn)算符包括與(and)或(or)、非(not)。這三種運(yùn)算符的運(yùn)算順序是先not,再and,最后or,但可以使用括號(hào)來(lái)調(diào)整運(yùn)算的先后順序。例如:判斷一個(gè)學(xué)生是否為體重(weight)大于50千克或者身高(height)小于155厘米的女生(gender:female),條件表達(dá)式可寫(xiě)為:(gender==“female”)and(weight>50orheight<155)例如:判斷一個(gè)學(xué)生是否為體重(weight)大于50千克并且身高(height)大于160厘米的女生(gender:female),條件表達(dá)式可寫(xiě)為:(gender==“female”)andweight>50andheight<155邏輯運(yùn)算符Python的基本控制結(jié)構(gòu)■選擇結(jié)構(gòu)在解決問(wèn)題的過(guò)程中,常常需要對(duì)事物進(jìn)行判斷和選擇,在程序設(shè)計(jì)中主要是用if語(yǔ)句來(lái)實(shí)現(xiàn)判斷和選擇,if語(yǔ)句包括單分支if語(yǔ)句和雙分支if語(yǔ)句、多分支if語(yǔ)句■循環(huán)結(jié)構(gòu)計(jì)數(shù)循環(huán)(for循環(huán))和條件循環(huán)(while循環(huán))復(fù)習(xí)上一節(jié)的命令:循環(huán)for的一般格式:for

<循環(huán)變量>in<序列>:<循環(huán)體>while的一般格式:while(條件表達(dá)式):

<循環(huán)體>Python的基本控制結(jié)構(gòu)■選擇結(jié)構(gòu)在解決問(wèn)題的過(guò)程中,常常需要對(duì)事物進(jìn)行判斷和選擇,在程序設(shè)計(jì)中主要是用if語(yǔ)句來(lái)實(shí)現(xiàn)判斷和選擇,if語(yǔ)句包括單分支if語(yǔ)句和雙分支if語(yǔ)句、多分支if語(yǔ)句條件語(yǔ)句塊1否是條件語(yǔ)句塊1語(yǔ)句塊2是否單分支雙分支多分支新命令:選擇指令if的一般格式:?jiǎn)畏种f語(yǔ)句的格式:if條件表達(dá)式:

語(yǔ)句塊1注意:冒號(hào):不能丟,關(guān)鍵字所形成的的包含關(guān)系Python的基本控制結(jié)構(gòu)例如,求x的絕對(duì)值的語(yǔ)句如下:ifx<0:X=-Xifx>0:x=xPython的基本控制結(jié)構(gòu)雙分支if語(yǔ)句的格式:if條件表達(dá)式:

語(yǔ)句塊1else:

語(yǔ)句塊2例如:給定整數(shù)x判斷奇偶。x=int(input("請(qǐng)輸入整數(shù)x:"))ifx%2==0:print("x為偶數(shù)")else:print("x為奇數(shù)")Python的基本控制結(jié)構(gòu)多分支if語(yǔ)句的格式:if條件表達(dá)式1:語(yǔ)句塊1elif條件表達(dá)式2:語(yǔ)句塊2……else:語(yǔ)句塊n例如:編寫(xiě)程序,輸入身高和體重,計(jì)算身體的質(zhì)量指數(shù)BMI值,并給出健康信息。這個(gè)問(wèn)題可以用兩種分支結(jié)構(gòu)來(lái)實(shí)現(xiàn),語(yǔ)句分別如下。Python的基本控制結(jié)構(gòu)多分支if語(yǔ)句的格式:if條件表達(dá)式1:語(yǔ)句塊1elif條件表達(dá)式2:語(yǔ)句塊2……else:語(yǔ)句塊n例如:編寫(xiě)程序,輸入身高和體重,計(jì)算身體的質(zhì)量指數(shù)BMI值,并給出健康信息。這個(gè)問(wèn)題可以用兩種分支結(jié)構(gòu)來(lái)實(shí)現(xiàn),語(yǔ)句分別如下。。height=eval(input(“請(qǐng)輸入身高(米):”))weight=eval(input(“請(qǐng)輸入體重(千克):”))

bmi=weight/pow(height,2)print(“BMI數(shù)值為:%.2f”%bmi)Ifbmi<18.5:#<18.5print(“BMI指標(biāo)為:偏瘦”)elifbmi<25:#18.5<=bmi<25print(“BMI指標(biāo)為:正常”)elifbmi<30:#25<=bmi<30print(“BMI指標(biāo)為:偏胖”)else:print(“BMI指標(biāo)為:肥胖”)任務(wù)三:小組活動(dòng),組內(nèi)分工合作寫(xiě)出兩種Python的基本控制結(jié)構(gòu)例如:編寫(xiě)程序,輸入身高和體重,計(jì)算身體的質(zhì)量指數(shù)BMI值,并給出健康信息。這個(gè)問(wèn)題可以用兩種分支結(jié)構(gòu)來(lái)實(shí)現(xiàn),語(yǔ)句分別如下。。height=eval(input(“請(qǐng)輸入身高(米):”))weight=eval(input(“請(qǐng)輸入體重(千克):”))

bmi=weight/pow(height,2)print(“BMI數(shù)值為:%.2f”%bmi)ifbmi<18.5:#<18.5print(“BMI指標(biāo)為:偏瘦”)if18.5<=bmi<25:#18.5<=bmi<25print(“BMI指標(biāo)為:正常”)if25<=bmi<30:#25<=bmi<30print(“BMI指標(biāo)為:偏胖”)ifbmi>=30:print(“BMI指標(biāo)為:肥胖”)

執(zhí)行字符串表達(dá)式,并返回表達(dá)式的值設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算

4.運(yùn)行調(diào)試計(jì)算圓周率程序在Python中創(chuàng)建并運(yùn)行程序,檢查運(yùn)行結(jié)果??梢园l(fā)現(xiàn),當(dāng)總投點(diǎn)數(shù)為1000時(shí),pi值的精確度還是很低的。通過(guò)增加總投點(diǎn)數(shù),可以提高pi值的精確度。1.分別輸入1000、5000、10000,得到圓周率的近似值分別可以精確到第幾位?2.多次輸入同樣的總投點(diǎn)數(shù)1000,會(huì)得到不同的結(jié)果,這是為什么?如何減少這種不確定性?

總結(jié)設(shè)計(jì)算法實(shí)現(xiàn)用隨機(jī)投點(diǎn)法計(jì)算1.條件表達(dá)式

關(guān)系運(yùn)算符

邏輯運(yùn)算符2.選擇結(jié)構(gòu)語(yǔ)句(3種基本形式)

總結(jié)

請(qǐng)給自己評(píng)價(jià)是/否,幾顆星能寫(xiě)出程序中的表達(dá)式嗎理解選擇結(jié)構(gòu)命令嗎只給題意要求能自己獨(dú)立寫(xiě)程序嗎自我評(píng)價(jià)單

作業(yè)

練一練:活動(dòng)7.2對(duì)比兩種計(jì)算圓周率的算法。填寫(xiě)表格3-5fromrandomimportrandomfromtimeimportclockdarts=int(input('請(qǐng)輸入總的投點(diǎn)數(shù):'))clock()hits=0foriinrange(darts):x,y=random(),random()if(x*x+y*y<=1):hits=hits+1pi=4*(hits/darts)print('pi的值是',pi)print("運(yùn)

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論