題目概要:
計算出獲勝者的機率。
解題方向:
第一個輸入:有多少組測試資料。
第二個輸入:參加遊戲人數。
第三個輸入:獲勝的機率。
第四個輸入:第幾個人獲勝。
※假設獲勝機率:p、輸機率:q=1-p,每次遊戲共有R個回合、有n個人參與遊戲、第k個人獲勝。
稍微列出計算式子。
Round_1:
第一個人獲勝的機率:p
第二個人獲勝的機率:q*p
第三個人獲勝的機率:(q^2)*p
第k個人獲勝的機率:(q^(k-1))*p
Round_2:
第一個人獲勝的機率:(q^n)*p
第二個人獲勝的機率:(q^n)*q*p
第三個人獲勝的機率:(q^n)*(q^2)*p
第k個人獲勝的機率:(q^n)*(q^(k-1))*p
Round_R:
第一個人獲勝的機率:(q^(R-1)*n)*p
第二個人獲勝的機率:(q^(R-1)*n)*q*p
第三個人獲勝的機率:(q^(R-1)*n)*(q^2)*p
第k個人獲勝的機率:(q^(R-1)*n)*(q^(k-1))*p
※使用等比級數整理每個回合獲勝的機率就可以獲得此公式:(q^(k-1)*p) * (1-(q^n^R)) / (1-q^n)。(首項:(q^(k-1)*p)、公比:q^n)
注意事項:
1.由於題目沒有說要進行多少回合的遊戲,所以R帶50即可。我有試過R=100,但是在Uva Online Judge會出現錯誤,可能是回合數太多,算出來的機率會更精準的關係。
2.在瘋狂程設中要輸出答案時使用printf輸出時,換行符號則要打\r\n。在Uva Online Judge使用printf輸出時,換行符號只需要打\n即可,多打會錯。
程式碼: