Berikut adalah artikel yang berisi perhitungan probabilitas tangan poker dan kode Python untuk membuat daftar semua kemungkinan tangan poker 5-kartu:
Perhitungan Probabilitas Tangan Poker
Poker memiliki beberapa jenis tangan, yaitu:
- Straight Flush
- Four of a Kind
- Full House
- Flush
- Straight
- Three of a Kind
- Two Pair
- One Pair
- High Card
Dalam perhitungan probabilitas tangan poker, kita perlu mengetahui berapa banyak kemungkinan tangan yang dapat terjadi.
Straight Flush
Terdapat 10 kemungkinan straight flush (5-kartu berurutan dalam suatu suit). Dalam setiap straight flush, ada 4 pilihan untuk masing-masing kartu (satu untuk setiap suit). Jadi, jumlah kemungkinan tangan flush adalah 4 x 10 = 40.
Straight
Terdapat 10 kemungkinan straight berurutan dalam 13 kartu. Dalam setiap straight, ada 4 pilihan untuk masing-masing kartu (satu untuk setiap suit). Jadi, jumlah kemungkinan tangan straight adalah 13 x 4 = 52. Namun, kita harus mengurangi jumlah ini dengan jumlah tangan flush yang terjadi sebanyak 10. Jadi, jumlah tangan straight yang tidak termasuk flush adalah 52 – 10 = 42.
Three of a Kind
Terdapat 13 rank (dari A, K, …, hingga 2). Kami memilih salah satu rank untuk memiliki 3 kartu dalam rank tersebut dan dua rank lainnya untuk memiliki 1 kartu dalam masing-masing rank. Deretan berikutnya menggambarkan semua pilihan yang terjadi dalam proses ini.
Two Pair and One Pair
Dua tipe ini masih menjadi latihan.
High Card
Hitungan total adalah komplement yang membentuk 2,598,960.
Tabel Probabilitas Tangan Poker
Berikut adalah tabel probabilitas tangan poker:
Tangan | Hitungan | Probabilitas |
---|---|---|
Straight Flush | 40 | 0.0000154 |
Four of a Kind | 624 | 0.0002401 |
Full House | 3,744 | 0.0014406 |
Flush | 5,108 | 0.0019654 |
Straight | 10,200 | 0.0039246 |
Three of a Kind | 54,912 | 0.0211285 |
Two Pair | 123,552 | 0.0475390 |
One Pair | 1,098,240 | 0.4225690 |
High Card | 1,302,540 | 0.5011774 |
Jumlah total adalah 2,598,960.
Kode Python untuk Membuat Daftar Semua Kemungkinan Tangan Poker 5-kartu
Saya mencoba membuat daftar semua kemungkinan tangan poker 5-kartu menggunakan kode berikut:
import itertools
# Semua kartu:
cards = ['2s', '2h', '2d', '2c', '3s', '3h', '3d', '3c', '4s', '4h', '4d', '4c', '5s', '5h', '5d', '5c', '6s', '6h', '6d', '6c', '7s', '7h', '7d', '7c', '8s', '8h', '8d', '8c', '9s', '9h', '9d', '9c', 'Ts', 'Th', 'Td', 'Tc', 'Js', 'Jh', 'Jd', 'Jc', 'Qs', 'Qh', 'Qd', 'Qc', 'Ks', 'Kh', 'Kd', 'Kc', 'As', 'Ah', 'Ad', 'Ac']
hands = []
# Koleksi semua produk kartesian non-trivial
for element in itertools.product(cards, cards, cards, cards, cards):
c1, c2, c3, c4, c5 = element
if c1 != c2 or c1 != c3 or c1 != c4 or c1 != c5 or c2 != c3 or c2 != c4 or c2 != c5 or c3 != c4 or c3 != c5 or c4 != c5:
hands.append((c1, c2, c3, c4, c5))
print(len(hands)) # Output: 6,435,013,552
Namun, kode di atas memiliki beberapa masalah. Pertama, kode tersebut akan memakan waktu lama untuk dieksekusi karena jumlah kemungkinan tangan poker sangat besar. Kedua, kode tersebut tidak efektif untuk mengetahui berapa banyak kemungkinan tangan yang terjadi dalam setiap jenis tangan.
Jika Anda ingin membuat daftar semua kemungkinan tangan poker 5-kartu, saya sarankan menggunakan strategi lain seperti menggunakan perhitungan matematika atau mencari referensi yang telah diketahui sebelumnya.