Calculating the odds of being dealt specific hands in poker, specifically No Limit Hold ‘Em, (like a royal flush, straight flush, etc.) involves some basic combinatorics.
These calculations are based on a standard deck of 52 cards, without jokers.
The odds are calculated as the number of ways a specific hand can be dealt divided by the total number of possible 5-card hands.
Percentage Odds of Each Hand in Poker
Here are the calculated odds of being dealt each type of hand in poker:
- Royal Flush: Approximately 0.00015%
- Straight Flush (excluding Royal Flush): Approximately 0.001%
- Four of a Kind: Approximately 0.02%
- Full House: Approximately 0.14%
- Flush (excluding Straight Flushes): Approximately 0.2%
- Straight (excluding Straight Flushes): Approximately 0.4%
- Three of a Kind: Approximately 2.1%
- Two Pair: Approximately 4.8%
- Pair: Approximately 42.3%
These percentages reflect the likelihood of being dealt each type of hand from a shuffled standard deck of 52 cards in a 5-card poker game.
Odds (1/X) of Each Hand in Poker
Here are the odds of being dealt each type of hand in poker, expressed in the format “1 in X”:
- Royal Flush: 1 in 649,740
- Straight Flush (excluding Royal Flush): 1 in 81,218
- Four of a Kind: 1 in 4,165
- Full House: 1 in 694
- Flush (excluding Straight Flushes): 1 in 508
- Straight (excluding Straight Flushes): 1 in 255
- Three of a Kind: 1 in 47
- Two Pair: 1 in 21
- Pair: 1 in 2 (little bit less)
Python Code for Odds of Getting Each Poker Hand
from math import comb
# Total number of 5-card hands
total_hands = comb(52, 5)
# Calculating the odds
odds = {
"Royal Flush": 4 / total_hands,
"Straight Flush": (36 - 4) / total_hands, # Excluding royal flushes
"Four of a Kind": 13 * comb(4, 4) * comb(48, 1) / total_hands,
"Full House": 13 * comb(4, 3) * 12 * comb(4, 2) / total_hands,
"Flush": (4 * comb(13, 5) - 36) / total_hands, # Excluding straight flushes
"Straight": (10 * 4**5 - 36) / total_hands, # Excluding straight flushes
"Three of a Kind": 13 * comb(4, 3) * comb(12, 2) * 4**2 / total_hands,
"Two Pair": comb(13, 2) * comb(4, 2)**2 * 11 * 4 / total_hands,
"Pair": 13 * comb(4, 2) * comb(12, 3) * 4**3 / total_hands
}
odds_percentage = {hand: f"{100 * prob:.6f}%" for hand, prob in odds.items()}
odds_percentage
Related