題目簡述:你正在玩德州撲克,假設現在檯面上已公開3張牌(仍有2張是蓋著的),且你知道自己與對方的手牌,在牌皆為均勻隨機發的,求你的勝率是多少。
其中每張牌以兩個字元表示,第一個字元代表花色(S (spades,黑桃), H (hearts,紅心), D (diamonds,方塊), C (clubs,梅花)),第二個字元代表點數(A, 2~9, T(10), J, Q, K)。
德州撲克比較輸贏的規則請見:維基百科 德州撲克#牌型大小規則
完整題敘請見(英文):https://atcoder.jp/contests/jag2012autumn/tasks/icpc2012autumn_b
多筆測資,讀到"#"代表結束,不用對此做出任何輸出。
每筆測資包含三行,第一行有兩個字串代表我們擁有的牌,第二行有兩個字串代表對方擁有的牌,第三行有三個字串代表檯面上已公開的牌。
輸出一個浮點數代表你獲勝的機率。輸出與答案誤差小於$10^{-6}$皆視為正確。
SA SK DA CA SQ SJ ST SA HA D2 C3 H4 S5 DA HA D9 H6 C9 H3 H4 H5 #
1.00000000000000000000 0.34444444444444444198 0.63030303030303025391
本題為實作題,以下提供簡略的解法:
窮舉檯面上蓋著的兩張牌(此兩張牌不能是雙方的手牌也不能是已公開的那三張牌,且此兩張牌不能相同)
比較勝負(雙方分別有7張牌(2張手牌+5張檯面上的牌),好好實作德州撲克所有牌型的判斷(可以直接用所有7張牌判斷,或者也可以窮舉所有7取5張牌的組合來判斷然後選其中最好的))),並用2個變數分別記錄獲勝場數(獲勝則+1,平手或輸則不變)與總場數(不論結果每次窮舉皆+1)
當窮舉完所有可能後,答案便是$\frac{獲勝場數}{總場數}$
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |