地特三等申論題
113年
[統計] 資料處理
第 四 題
一枚厚硬幣翻轉後,有 0.4 的機率正面朝上(以 H 表示),0.5 的機率反面朝上(以 T 表示),與 0.1 的機率立在邊緣上(以 E 表示)。寫一個 C 語言程式模擬此厚硬幣翻轉 20 次的結果,將結果儲存於一個字元陣列 data 中,並將其印出。註:C 語言的 rand 函數所產生的亂數是一個整數,其值介於 0 到 RAND_MAX 之間。(20 分)
📝 此題為申論題
思路引導 VIP
看到此題,應立即聯想到「蒙地卡羅模擬」中的離散機率分佈實作。核心解法是將 rand() 產生的整數正規化為 0 到 1 之間的浮點數,再依據累積機率區間(0.4、0.4+0.5=0.9)切分條件分支(if-else),最後注意字元陣列字串結尾 '\0' 的處理細節。