【正文】
些由于計(jì)算過于復(fù)雜而難以得到解析解或者根本沒有解析解的問題,蒙特?卡羅方法是一種有效的求出數(shù)值解的方法。一般蒙特?卡羅方法在數(shù)學(xué)中最常見的應(yīng)用就是蒙特?卡羅積分。方法:蒙特卡羅方法的解題過程可以歸結(jié)為三個(gè)主要步驟:構(gòu)造或描述概率過程;實(shí)現(xiàn)從已知概率分布抽樣;建立各種估計(jì)量。利用蒙特卡洛方法實(shí)現(xiàn)求解圓周率!/usr/bin/Python* coding:utf8 *import randomimport mathdef monteCarlo(N): i = 0 count = 0 while i = N: x = () y = () if pow(x, 2) + pow(y, 2) 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)【詳解】本題考查的知識點(diǎn)是Python程序。原理:通常蒙特?卡羅方法通過構(gòu)造符合一定規(guī)則的隨機(jī)數(shù)來解決數(shù)學(xué)上的各種問題。對于那些由于計(jì)算過于復(fù)雜而難以得到解析解或者根本沒有解析解的問題,蒙特?卡羅方法是一種有效的求出數(shù)值解的方法。一般蒙特?卡羅方法在數(shù)學(xué)中最常見的應(yīng)用就是蒙特?卡羅積分。方法:蒙特卡羅方法的解題過程可以歸結(jié)為三個(gè)主要步驟:構(gòu)造或描述概率過程;實(shí)現(xiàn)從已知概率分布抽樣;建立各種估計(jì)量。利用蒙特卡洛方法實(shí)現(xiàn)求解圓周率!/usr/bin/Python* coding:utf8 *import randomimport mathdef monteCarlo(N): i = 0 count = 0 while i = N: x = () y = () if pow(x, 2) + pow(y, 2) 1: count += 1 i += 1 pi = 4 * count / N print(pi)monteCarlo(1000000)33.錯(cuò)誤1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,沒取到23,故應(yīng)改為: range(1,24)錯(cuò)誤2:縮進(jìn)錯(cuò)誤,y=35x、if 4*x+2*y==94:是for語句中的語句塊,應(yīng)縮進(jìn)。print(兔子有%s只,雞有%s只%(x,y))是if語句中的語句塊,應(yīng)縮進(jìn)?!驹斀狻勘绢}考查的是Python調(diào)試。本題程序錯(cuò)誤如下:錯(cuò)誤1:兔子4只腿,最多只能是23只,而 range(1,23)只取到22,沒取到23,故應(yīng)改為: range(1,24)錯(cuò)誤2:縮進(jìn)錯(cuò)誤,y=35x、if 4*x+2*y==94:是for語句中的語句塊,應(yīng)縮進(jìn)。print(兔子有%s只,雞有%s只%(x,y))是if語句中的語句塊,應(yīng)縮進(jìn)。調(diào)試完最終輸出:兔子有12只,雞有23只。34.C D B D C 【詳解】本題主要考查Python程序調(diào)試。①Python程序for循環(huán)格式是:for 變量 in range( ),故程序中①處應(yīng)填寫in,選C選項(xiàng)。②程序中x%4的作用是計(jì)算x除以4的余數(shù),選D選項(xiàng)。③colors=[red, green, blue, yellow],依次循環(huán)從colors中取顏色,故執(zhí)行此程序,繪制出圓形的總顏色數(shù)是4,故本題選B選項(xiàng)。④x的范圍是從0到99,故執(zhí)行此程序,繪制出圓形的總個(gè)數(shù)是100個(gè),選D選項(xiàng)。⑤此程序?qū)儆诔绦蛟O(shè)計(jì)結(jié)構(gòu)中的循環(huán)結(jié)構(gòu),選C選項(xiàng)。35.①n=len(a) sum+=1或sum=sum+1 6 【詳解】本題主要考查Python程序調(diào)試與執(zhí)行。①變量n用來保存數(shù)組a的長度,使用len函數(shù),故此處填n=len(a)。②使用for循環(huán)統(tǒng)計(jì)出80分(含80)以上的人數(shù),用變量sum統(tǒng)計(jì)滿足條件的人數(shù),當(dāng)滿足if條件時(shí),sum變量遞增,故此處填sum+=1或sum=sum+1。③執(zhí)行上述程序段后,sum=6,故輸出的內(nèi)容是6。36.B C C C D 【詳解】本題主要考查二分查找算法及Python程序?qū)崿F(xiàn)。①二分查找的循環(huán)條件是left<=right,故選B選項(xiàng)。②此處是取中間值,需要整除2,故填(left+right)//2,故選C選項(xiàng)。③如果mid對應(yīng)的列表值是1000,表示已找到,則用break跳出循環(huán),選C選項(xiàng)。④如果mid對應(yīng)的列表值小于1000,則需要更新left的值為mid+1繼續(xù)循環(huán),選C選項(xiàng)。⑤否則更新right的值為mid1,選D選項(xiàng)。37.c=0print(能同時(shí)被3或5整除的數(shù)是:,end= )for i in range(1,101): if i%3==0 and i%5==0: c+=1 print(i,end= )print()print(能同時(shí)被3或5整除的個(gè)數(shù)是:+str(c))【詳解】本題主要考查Python程序設(shè)計(jì)。設(shè)計(jì)100以內(nèi)的數(shù)中能同時(shí)被3或5整除的個(gè)數(shù),使用for循環(huán)變量i的范圍是從1~99,用變量c統(tǒng)計(jì)能同時(shí)被3或5整除的個(gè)數(shù),如果滿足if判斷條件,則變量c遞增,循環(huán)完輸出c的值,具體代碼及運(yùn)行結(jié)果如下:38.a(chǎn)=int(input( 請輸入數(shù) a:))b=int(input( 請輸入數(shù) b:))if ab: t=a a=b b=t print(用戶輸入的數(shù)按小到大排序結(jié)果是: , a, b)else :print(原樣輸出 ,a,b)【詳解】本題主要考查Python程序設(shè)計(jì)。使用input函數(shù)接收兩個(gè)數(shù)a和b,用if條件分支結(jié)構(gòu)判斷a和b的大小,如果a大于b,則交換,否則原樣輸出,具體代碼如下:a=int(input( 請輸入數(shù) a:))b=int(input( 請輸入數(shù) b:))if ab: t=a a=b b=t print(用戶輸入的數(shù)按小到大排序結(jié)果是: , a, b)else :print(原樣輸出 ,a,b)39.str = input(請輸入要轉(zhuǎn)換成大寫的數(shù)據(jù):)c=len(str)for i in range(0,c):print(str[i].upper(),end= )【詳解】本題主要考查程序設(shè)計(jì)。題干要求可使用Python程序設(shè)計(jì)實(shí)現(xiàn),通過upper函數(shù)可以將輸入數(shù)據(jù)轉(zhuǎn)換成大寫并輸出,具體代碼如下:str = input(請輸入要轉(zhuǎn)換成大寫的數(shù)據(jù):)c=len(str)for i in range(0,c):print(str[i].upper(),end= )40.0【詳解】本題主要考查Python中While循環(huán)結(jié)構(gòu)。Python 編程中 while 語句用于循環(huán)執(zhí)行程序,即在某條件下,循環(huán)執(zhí)行某段程序,以處理需要重復(fù)處理的相同任務(wù)。題中循環(huán)體內(nèi)含If選擇結(jié)構(gòu),即當(dāng)i%3為0時(shí),執(zhí)行sum變量累加i,輸出i,i自增加1操作,因此本題輸出0后,循環(huán)無限執(zhí)行下去。【點(diǎn)睛】