【正文】
于計(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)【詳解】本題考查的知識(shí)點(diǎn)是Python程序。原理:通常蒙特?卡羅方法通過構(gòu)造符合一定規(guī)則的隨機(jī)數(shù)來解決數(shù)學(xué)上的各種問題。對(duì)于那些由于計(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)32.0=s[i]=9 或s[i] in 0123456789” sum=sum+a[i]*(i+1) ydm=a[9] 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①變量s保存商品倉庫物品代碼,若s[i]是數(shù)字則進(jìn)入循環(huán)判斷,否則跳過,故此處判斷條件是0=s[i]=9 或s[i] in 0123456789”。②校驗(yàn)碼由前面9個(gè)X計(jì)算得到,計(jì)算方法為:從左邊開始,第1個(gè)數(shù)字乘以1加上第2個(gè)數(shù)字乘以2……依次類推,直到加上第9個(gè)數(shù)字乘以9,用變量sum統(tǒng)計(jì),故此處填sum=sum+a[i]*(i+1)。③變量sdm是計(jì)算得到的校驗(yàn)碼,變量ydm是輸入的校驗(yàn)碼,此處需要將校驗(yàn)碼a[9]賦給變量ydm,故填ydm=a[9]。33.range %10 x% 10或xb*100s*10或其它同等答案 x 【詳解】本題考查的是Python程序設(shè)計(jì)。水仙花數(shù)是指一個(gè)三位數(shù),故使用range函數(shù)遍歷100~999;s存放的是十位數(shù),故可以選對(duì)x取整后再除以10求余,故第二空應(yīng)填%10(求余符號(hào)%);g是存放個(gè)位,直接除以10求余,或減去前面整百和整十的數(shù),故第三空為:x% 10或xb*100s*10或其它同等答案;如果找到滿足條件的數(shù),則輸出,故第四空為:x。34.m=0 elift60: A 【詳解】本題主要考查Python程序的執(zhí)行與調(diào)試。①若員工在本月累計(jì)運(yùn)動(dòng)時(shí)間30小時(shí)以下,獎(jiǎng)勵(lì)0元,即m=0。②達(dá)到45但不足60小時(shí)獎(jiǎng)勵(lì)450元,故填elift60:。③10,不是有效值,故輸出信息為“輸入錯(cuò)誤”,故本題選A選項(xiàng)。35.34或 money//hen_price+1 101 或 money//threechick_price+1 chick_num*3 【詳解】本題主要考查Python程序執(zhí)行與調(diào)試。①母雞只數(shù)可能為133,對(duì)比最外層循環(huán)范圍,第一空填34或 money//hen_price+1。②小雞只數(shù)可能為1100,同理第二空填101 或 money//threechick_price+1。③公雞5文錢1只,母雞3文錢1只,小雞3只1文錢,故第三空填chick_num*3。36.for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)【詳解】本題主要考查程序設(shè)計(jì)??赏ㄟ^Python程序設(shè)計(jì)實(shí)現(xiàn)題干要求,通過for循環(huán)找出水仙花數(shù),依次取出三位數(shù)的每一位數(shù),其中百位a= i//100,十位b= (i//10)%10,個(gè)位c=i%10,然后判斷是否是水仙花數(shù),具體代碼如下:for i in range(100,1000): a=i//100 b= (i//10)%10 c=i%10 if i==a*a*a+b*b*b+c*c*c: print(i)37.【詳解】本題主要考查程序設(shè)計(jì)與實(shí)現(xiàn)??梢允褂肞ython程序?qū)崿F(xiàn)題干要求:38.N=int(input(請(qǐng)輸入一個(gè)數(shù)))for i in range(1,N+1):if(i%7==0 or i/10==7):print(i,end= )【詳解】本題考查Python語言編程解決實(shí)際問題。本題要找到能被7整除或者十位是7的數(shù),并且這兩個(gè)條件是或的關(guān)系,其關(guān)鍵代碼為i%7==0 or i/10==7。程序運(yùn)行代碼詳見下圖:39.計(jì)算每一項(xiàng)的階乘 記錄階乘相加后的和 t記錄的是每一項(xiàng)階乘的結(jié)果,t*=n即t=t*n,t初值為1,能計(jì)算出每項(xiàng)的階乘結(jié)果,若為0,則每項(xiàng)的階乘結(jié)果都是0,不符合題意。 t=t*n s=s+t 【詳解】本題考查的是python語言編程。本題考查的是120階乘的求和。本題的重點(diǎn)是要先計(jì)算出對(duì)應(yīng)的每一項(xiàng)階乘的結(jié)果t,然后20項(xiàng)階乘的結(jié)果記錄在s中。在此過程中既要考慮到累乘求階乘結(jié)果,又要考慮到累加求所有階乘的和。初值n=0,在121的循環(huán)過程中,記錄每一項(xiàng)的階乘,s=0記錄階乘累加的和,t=1記錄每一項(xiàng)階乘的結(jié)果。每求一次階乘就要進(jìn)行一次求和,故語句t*=n,s+=t均在“for n in range(1,21):”的循環(huán)體內(nèi)。40.champion 3 i 【詳解】本題主要考查Python程序的執(zhí)行。①champion是選手編號(hào)列表,此處是循環(huán)讀取選手編號(hào),使用for i in champion,故此處填champion。②四人中有一人說了假話,即3個(gè)人說真話,即當(dāng)cond=3時(shí),則表示找到了誰是冠軍,故此處填3。③當(dāng)cond是3時(shí),i即為冠軍,故此處填