Texas hold 'em
Texas Hold'em - ABŞ-ın Texas ştatında yaranmış standart poker oyunlarından biridir. Bu oyun 52 kartdan ibarət standart bir dəstə ilə oynanılır, 4 növ (pik, ürək, kərpic və xaç) üzrə 13 kart hər birində (A, K, Q, J və 10{2), jokersiz.
Oyun aşağıdakı kimi keçirilir.
Əvvəlcə hər bir oyunçuya iki kart üzləri aşağı olmaqla verilir. Bunlar qapalı və ya cib kartları adlanır və tam açılana qədər açıla bilməzlər. Sonra diler üç kartı üzləri yuxarı olmaqla qoyur - ümumi kartlar, yəni bütün oyunçular üçün ümumi olan kartlar. Bu üç kart flop adlanır. Flopdan sonra gələn ümumi karta turn, beşinciyə isə river deyilir.
Riverdən sonra oyun kartların açılmasına keçir. Bütün oyunçular bütün kartlarını açırlar. Hər bir oyunçu yeddi kartdan beşini seçir, yəni onların iki qapalı kartı və beş ümumi kartı əlini formalaşdırır. Ən güclü əli olan oyunçu oyunu qazanır. Aşağıda güclüdən zəifə qədər on mümkün əl verilmişdir:
Royal Street Flush: A, K, Q, J və 10 eyni növdə. Bu, street flush-un xüsusi halıdır.
Street Flush: Beş ardıcıl kart (məsələn 7, 6, 5, 4 və 3) eyni növdə.
Dördlük: Dörd eyni rütbəli kart.
Full House: Üç eyni rütbəli kart və başqa rütbəli bir cüt.
Flush: Beş eyni növdə kart, amma ardıcıl deyil.
Street: Beş ardıcıl kart, amma eyni növdə deyil.
Üçlük: Üç eyni rütbəli kart.
İki cüt: Eyni rütbəli iki kart və başqa rütbəli iki kart.
Bir cüt: Yalnız bir cüt kart (iki kart) eyni rütbədə.
Yüksək kart: Hər hansı digər əl.
Kartlar J, Q və K ardıcıllıqla 11, 12 və 13 kimi qəbul edilir. A rütbə üzrə K-dən sonra və 2-dən əvvəl gəlir, belə ki, həm A-K-Q-J-10, həm də 5-4-3-2-A ardıcıllıqları mümkündür (amma 3-2-A-K-Q və ya oxşarları deyil).
Əgər bir neçə oyunçunun eyni əlləri varsa, kartların rütbələri müqayisə edilir.
Əsas fikir əvvəlcə yaranan dəstləri (cütlər, üçlüklər və ya dördlüklər) müqayisə etmək, sonra isə qalan kartları ən böyükdən ən kiçiyə qədər müqayisə etməkdir, ta ki əllərin bərabərliyi pozulana qədər. Daha dəqiq:
Royal straight flush: (bərabərlik pozulmur)
Straight flush: Ən yüksək rütbəli kartı müqayisə edin.
Four of a kind: Dörd kartı müqayisə edin, sonra qalan birini.
Full house: Üç kartı müqayisə edin, sonra cütü.
Flush: Bütün kartları bir-bir müqayisə edin.
Straight: Ən yüksək rütbəli kartı müqayisə edin.
Three of a kind: Üç kartı müqayisə edin, sonra qalan ikisini.
Two pairs: Yüksək rütbəli cütü, sonra aşağı rütbəli cütü, sonra sonuncu kartı müqayisə edin.
One pair: Cütü müqayisə edin, sonra qalan üçü.
High card: Bütün kartları bir-bir müqayisə edin.
Rütbələrin sırası A, K, Q, J, 10, 9, ... , 2 ən böyükdən ən kiçiyə qədərdir, yalnız A 2-dən sonra aşağı rütbədə sayılır. Qeyd edək ki, bəzi istisna hallarda bərabərlik qalır. Həmçinin, bərabərlik pozulmasında növlər heç nəzərə alınmır.
Budur bir neçə müqayisə nümunəsi (bunlar yalnız izah məqsədi ilə verilmişdir; bəzi kombinasiyalar Texas Hold'em-də baş verə bilməz):
J-J-J-6-3 və K-K-Q-Q-8.
Birincisi ikincisini məğlub edir, çünki üçlük iki cütdən güclüdür.
J-J-J-6-3 və K-Q-8-8-8.
Hər ikisi üçlük olduğuna görə, əvvəlcə üçlüklər müqayisə edilir, bu halda J və 8. J daha yüksəkdir, buna görə birincisi daha güclü əldir. Qalan kartlar, 6-3 və K-Q, artıq nəzərə alınmır, çünki bərabərlik artıq pozulub.
Q-J-8-6-3 və Q-J-8-5-3.
Hər ikisi yüksək kartdır, fərz edək ki, əllər eyni növdə deyil (yəni flush deyil). Üç ən yüksək rütbəli kart Q-J-8 eynidir, buna görə dördüncü ən yüksək müqayisə edilir. Birincisi daha güclüdür, çünki 6 5-dən yüksəkdir.
9-9-Q-7-2 və 9-9-J-8-5.
Hər ikisi bir cütdür, eyni rütbəli cüt (9) ilə. Beləliklə, qalan kartlar, Q-7-2 və J-8-5, ən yüksəkdən ən kiçiyə qədər müqayisə edilir və birincisi qalib gəlir, çünki Q J-dən yüksəkdir.
İndi fərz edək ki, siz Texas Hold'em oyununda bir rəqiblə oynayırsınız və sizin və rəqibin kartları artıq paylanıb. Siz təəccüblü şəkildə telepatik qabiliyyətə maliksiniz və rəqibin kartlarını bilirsiniz. Lakin, sizin qabiliyyətiniz turn və riverin nə olacağını proqnozlaşdıracaq qədər güclü deyil.
Sizin vəzifəniz, qalan kartlardan təsadüfi seçilən turn və river nəzərə alınaraq, oyunu qazanma ehtimalınızı hesablayan bir proqram yazmaqdır. Siz və rəqib həmişə mümkün olan ən güclü əli seçməlisiniz. Bərabərliklər hesablamaya daxil edilməlidir, yəni məğlubiyyət kimi sayılmalıdır.
Giriş verilənləri
Hər biri aşağıdakı formatda olan çoxsaylı datasetlərdən ibarətdir:
YourCard_1 YourCard_2
OpponentCard_1 OpponentCard_2
CommunityCard_1 CommunityCard_2 CommunityCard_3
Hər dataset üç sətirdən ibarətdir. Birinci və ikinci sətirlərdə sizin və rəqibin cib kartları var. Üçüncü sətirdə flop, yəni ilk üç ümumi kart var. Bu kartlar boşluqlarla ayrılır.
Hər kart iki simvolla təmsil olunur. Birinci simvol növü göstərir: S (pik), H (ürək), D (kərpic) və ya C (xaç). İkinci simvol rütbəni göstərir: A, K, Q, J, T (10) və ya 9 - 2. Girişin sonu "#" ilə göstərilir. Bu işlənməməlidir.
Çıxış verilənləri
Ehtimalı bir sətirdə çap edin. Sayın ondalık nöqtədən sonra istənilən sayda rəqəm ola bilər, lakin 10^{-6}-dan böyük mütləq səhv olmamalıdır.