本篇將通過 Python 和 Cangjie 雙語實現基礎概率的計算,幫助學生學習如何解決簡單的概率問題,并培養邏輯推理和編程思維。
關鍵詞
- 小學奧數
- Python + Cangjie
- 概率計算
一、題目描述
假設有一個袋子中有 5 個紅球和 3 個藍球,每次從袋子中隨機抽取一個球。請編寫程序計算:
- 抽到紅球的概率。
- 抽到藍球的概率。
- 連續兩次抽到紅球的概率(不放回)。
輸入格式:從控制臺輸入紅球和藍球的數量。
輸出格式:輸出三項概率結果,保留兩位小數。
二、Python 實現
# 接收用戶輸入
red = int(input("請輸入紅球的數量: "))
blue = int(input("請輸入藍球的數量: "))# 總球數
total = red + blue# 計算概率
p_red = red / total
p_blue = blue / total
p_two_red = (red / total) * ((red - 1) / (total - 1))# 輸出結果,保留兩位小數
print(f"抽到紅球的概率: {p_red:.2f}")
print(f"抽到藍球的概率: {p_blue:.2f}")
print(f"連續兩次抽到紅球的概率(不放回): {p_two_red:.2f}")
三、Cangjie 實現
package cjcDemoimport std.convert.* // 導入用于數據轉換的模塊
import std.console.* // 導入用于控制臺輸入輸出的模塊
import std.format.* // 導入用于字符串格式化的模塊// 定義函數接收并轉換用戶輸入為 Float64
func inputFloat(info: String): Float64 {print(info)let number: Float64 = Float64.parse(Console.stdIn.readln().getOrThrow())return number
}main(): Int64 {let red = inputFloat("請輸入紅球的數量: ")let blue = inputFloat("請輸入藍球的數量: ")let total = red + bluelet p_red = red / totallet p_blue = blue / totallet p_two_red = (red / total) * ((red - 1.0) / (total - 1.0))println("抽到紅球的概率: ${p_red.format("0.2")}")println("抽到藍球的概率: ${p_blue.format("0.2")}")println("連續兩次抽到紅球的概率(不放回): ${p_two_red.format("0.2")}")return 0
}
四、圖形展示(擴展部分)
以下代碼使用 Python 生成概率計算的可視化圖形。本部分是進階擴展內容,當前階段不要求理解:
from PIL import Image, ImageDraw, ImageFont# 創建畫布
img = Image.new('RGB', (600, 300), color='white')
draw = ImageDraw.Draw(img)
font = ImageFont.load_default()# 繪制概率計算的結果
draw.text((10, 10), "抽到紅球的概率: 0.62", fill="black", font=font)
draw.text((10, 50), "抽到藍球的概率: 0.38", fill="black", font=font)
draw.text((10, 90), "連續兩次抽到紅球的概率: 0.36", fill="black", font=font)# 保存圖像
img_path = "probability_visualization.png"
img.save(img_path)
print(f"圖形已保存為 {img_path}")
生成的圖像如下:
五、示例執行
示例 1:
輸入:
紅球數量: 5
藍球數量: 3
輸出:
抽到紅球的概率: 0.62
抽到藍球的概率: 0.38
連續兩次抽到紅球的概率(不放回): 0.36
示例 2:
輸入:
紅球數量: 2
藍球數量: 2
輸出:
抽到紅球的概率: 0.50
抽到藍球的概率: 0.50
連續兩次抽到紅球的概率(不放回): 0.17
六、小結
通過這道概率計算的題目,學生學習了如何運用概率公式解決數學問題,并掌握了如何在編程中實現概率的計算與邏輯思維的應用。
上一篇: 「Mac玩轉倉頡內測版45」小學奧數篇8 - 排列組合計算
下一篇: 「Mac玩轉倉頡內測版47」小學奧數篇10 - 數列求和
作者:SoraLuna
鏈接:https://www.nutpi.net/thread?topicId=392
來源:堅果派
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。