單猜數(shù)字游戲代碼解析)
第1題 · 猜數(shù)字游戲第2~12行- play() 連玩 3 局t 累計(jì)總局?jǐn)?shù)。- 每局a 是 1~100 的隨機(jī)答案n 是本局猜測(cè)次數(shù)。- try/except 捕獲非整數(shù)輸入if not 1g100 校驗(yàn)范圍都要求重新輸入。- 每猜一次n1 用三元表達(dá)式一行輸出大了/小了/猜中。- 猜中后把n 加進(jìn)t 并break 最后打印 3 局平均次數(shù)。第2題 · 兩種策略對(duì)比第13~16行 主程序- lin 順序策略從 1 往上猜次數(shù)恰好等于答案本身所以lambda a:a 。- bin_ 二分策略用lo/hi 維護(hù)區(qū)間每次取中點(diǎn)m 根據(jù)大小砍掉一半?yún)^(qū)間c 計(jì)數(shù)。while m:(lohi)//2 用海象運(yùn)算符一邊算中點(diǎn)一邊循環(huán)。- 主程序里A 是 1000 個(gè)隨機(jī)答案順序平均sum(A)/1000 、最多max(A) 二分用map(bin_,A) 逐個(gè)計(jì)算后取平均和最大。第3題 · 蒙特卡洛求 π第17行 主程序- pi 是 lambda生成 N 個(gè)[0,1) 的點(diǎn)第一象限統(tǒng)計(jì)落在單位圓內(nèi)x2y2≤1 的點(diǎn)數(shù)M 則π≈4M/N 四分之一圓面積 ×4。- 主程序?qū)?N1萬(wàn)/10萬(wàn)/100萬(wàn) 各跑 5 次打印與 3.14159 的平均誤差——可觀察到 N 增大 10 倍誤差約減為 1/√10。核心技巧 用; 合并簡(jiǎn)單語(yǔ)句、用三元表達(dá)式替代 if/else、用海象運(yùn)算符: 在條件里賦值、用lambda 和sum(生成器) 把循環(huán)壓成一行——功能與原代碼完全等價(jià)本人是新手已經(jīng)查找大量資料完成的猜數(shù)字小游戲如果還有錯(cuò)的地方希望各位網(wǎng)友指出謝謝大家觀看希望可以幫助到像我一樣的新手小白。