\n",
"\n",
"# Poker: Ranking Hands, etc.\n",
"\n",
"\n",
"The [rules for poker hands](https://en.wikipedia.org/wiki/List_of_poker_hands) are complex, but it is an interesting exercise to write a program to rank poker hands—to determine if one is higher or lower than another—as I did in my [Udacity 212](https://www.udacity.com/course/design-of-computer-programs--cs212) course after making a [cheesy video](https://www.youtube.com/watch?v=PI8Fo1vzUPM) with David Evans. We'll cover only the ranking part of poker, not the betting part. \n",
"\n",
"Some key concepts:\n",
"\n",
"- **Card**: A card will be represented as a two character string, like `'9c'`, where the first character is the **rank** and the second is the **suit**. The ranks are `23456789TJQKA` in ascending order of value and the suits are `'cdhs'` for clubs, diamonds, hearts, and spades; all suits have equal value in poker. I thought about using the Unicode characters `'♣︎♢♡♠︎'`, but they are hard to find on the keyboard. I also thought of using `(10, 0)` instead of `'Tc'`; the former might allow for a bit faster code, but the later is easier to look at when debugging.\n",
"- **Hand**: A hand is a collection of five cards: `['3s', '3c', 'As', 'Ks', 'Qs']`\n",
"- **Type**: A hand has a ranking type; these are (in highest to lowest order): five of a kind, straight flush, four of a kind, full house, flush, straight, three of a kind, two pair, one pair, high card. (Five of a kind can only be made in games with wild cards.)\n",
"- **Group**: Two or more cards with the same rank: a pair, a three-of-a-kind, etc.\n",
"- **Winning**: If two hands have different types, the higher type wins. If they have the same type, a **tiebreaker** is needed. \n",
"- **Tiebreaker**: For example, the tiebreaker for \"straight\" is the rank of the highest card; a ten-high straight beats a nine-high straight. The tiebreaker for \"three of a kind\" is the rank of the three-of-a-kind group.\n",
"- **Ranking**: To determine which hand wins we could have a comparison function, `compare_ranks(hand1, hand2)`. But it is simpler to compare ranks with `ranking(hand) < ranking(hand2)`. The function `ranking` returns a tuple that encompasses the type and tiebreaker. Note that the word **ranking** refers to the value of a *hand*, but **rank** refers to the value of a *card*."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Ranking and Integer Partitions: `ranking0`\n",
"\n",
"There is a curious correspondence between the seven types of poker hands that involve groups (that is, all the types except the ones for straights and flushes) and the seven **[integer partitions](https://en.wikipedia.org/wiki/Partition_(number_theory))** of the number 5 (remember, there are 5 cards in a hand). \n",
"\n",
"Consider this table of ranking types, where the straights and flushes are omitted:\n",
"\n",
"\n",
"| Type| Example |Partitions |\n",
"|-|---|---|\n",
"| Five of a kind |`As Ac Ah Ad Aj`| (5,) |\n",
"| Four of a kind |`7s 7c 7d 2d 7h`| (4, 1)|\n",
"| Full house | `8h 9c 8d 8c 9h`| (3, 2)|\n",
"| Three of a kind | `Ts Tc Th 9s 7c`| (3, 1, 1)|\n",
"| Two pair | `Ts Tc 9s 9c 7h`| (2, 2, 1) |\n",
"| One pair | `3s 3c As Ks Qs`| (2, 1, 1, 1)|\n",
"| High card | `2s 4s 5s 6s 7h`| (1, 1, 1, 1, 1)|\n",
"\n",
"The types are sorted from highest to lowest, and the partitions are also sorted in lexicographic order from highest to lowest. The correspondence is that, for example, `(3, 2)` means \"three cards of one rank and two cards of another rank\", which is the definition of a full house. \n",
"\n",
"Let's get some preliminaries out of the way so we can start to program a solution for ranking."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import random\n",
"import matplotlib.pyplot as plt\n",
"from collections import Counter\n",
"from statistics import mean\n",
"from itertools import combinations, permutations, product\n",
"from functools import lru_cache"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"# Data Types\n",
"Card = str # A card is a str of length 2: '7s'\n",
"Hand = (list, tuple) # A hand is 5 cards in either a list or a tuple\n",
"\n",
"# Functions and Objects\n",
"join = ' '.join # Function to join cards together into one string\n",
"cards = str.split # Function to split a string apart into a list of cards\n",
"rankstr = '23456789TJQKA' # Card ranks in ascending order\n",
"\n",
"def rank(card) -> int: return rankstr.index(card[0]) + 2\n",
"def suit(card) -> str: return card[1]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A `collections.Counter` does most of the work of finding groups and thus partitions. It tells us that the following full house has three 8s and two 9s:"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({8: 3, 9: 2})"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hand = cards('8h 9c 8d 8c 9h')\n",
"\n",
"Counter(map(rank, hand))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This gives us all the information we need; the problem is that it is not in the right format to compare rankings. We can't do `counter1 < counter2` because Counters do not support comparison. But we can reformat the information into a tuple consisting of two components: \n",
" 1. The **type** of hand, full house, which is denoted by the partition `(3, 2)`.\n",
" 2. The **tiebreakers**: among all full houses, ties go to the highest three-of-a-kind rank, and if those are the same, then the highest pair rank. So the tiebreaker for this hand would be `(8, 9)`. (Even though 9 > 8, the 8 comes first because the three-of-a-kind is more important than the pair.)\n",
"\n",
"Thus the complete ranking for this hand is the tuple `((3, 2), (8, 9))`. The same information as in the Counter, but in the proper order for sorting.\n",
"\n",
"So (ignoring straights and flushes for now) here's how we do `ranking`:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"def ranking0(hand) -> tuple:\n",
" \"\"\"Return a (type, tiebreaker) tuple indicating how high the hand ranks.\"\"\"\n",
" counts = Counter(map(rank, hand))\n",
" groups = sorted(((counts[r], r) for r in counts), reverse=True)\n",
" return tuple(zip(*groups))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here is the process step by step:"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({8: 3, 9: 2})"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"counts = Counter(map(rank, hand))\n",
"counts"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[(3, 8), (2, 9)]"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"groups = sorted(((counts[r], r) for r in counts), reverse=True)\n",
"groups"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((3, 2), (8, 9))"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"tuple(zip(*groups))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Notice that this final result is the **matrix transpose** (switching rows and columns) of `groups`. In Python the transpose of `m` is `zip(*m)`.\n",
"\n",
"Below we see that the eights-over-nines full house beats a six-over-tens full house (it doesn't matter that 10 > 9; what matters is 8 > 6):"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [],
"source": [
"hand2 = cards('6h 6c 6d Tc Th')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((3, 2), (8, 9))"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ranking0(hand)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"((3, 2), (6, 10))"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ranking0(hand2)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ranking0(hand) > ranking0(hand2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Complete Ranking: `ranking1`\n",
"\n",
"It is a cute mathematical result that poker rankings correspond to the integer partitions of 5, but the correspondence does not account for straights and flushes. Still, we can salvage the approach by inventing \"type tuples\" for straight, flush, and straight flush that are not partitions but are in the correct sort order with respect to the seven actual partitions of 5. There are many possible choices; my choices, shown in **bold** below, are to look at the type one row below and add 1 to the last digit: one better than `(3, 1, 1)` is `(3, 1, 2)`; one better than `(4, 1)` is `(4, 2)`.\n",
"\n",
"\n",
"| Type| # | Example |Type tuple |\n",
"|-|--|---|---|\n",
"| Five of a kind |9|`As Ac Ah Ad Aj`| (5,) |\n",
"| Straight flush |8|`As Ks Qs Ts Js`| **(4, 2)**|\n",
"| Four of a kind |7|`7s 7c 7d 2d 7h`| (4, 1)|\n",
"| Full house |6| `8h 9c 8d 8c 9h`| (3, 2)|\n",
"| Flush |5| `8c Kc Qc Jc Tc`| **(3, 1, 3)** |\n",
"| Straight |4| `Kc Qh Jd Th 9c`| **(3, 1, 2)** |\n",
"| Three of a kind |3| `Ts Tc Th 9s 7c`| (3, 1, 1)|\n",
"| Two pair |2| `Ts Tc 9s 9c 7h`| (2, 2, 1) |\n",
"| One pair |1| `3s 3c As Ks Qs`| (2, 1, 1, 1)|\n",
"| High card |0| `2s 4s 5s 6s 7h`| (1, 1, 1, 1, 1)|\n",
"\n",
"It is easy to code this up; the function `special_type` handles flushes and straights, and `rankings` uses the special type or the regular type. Another complication is that in poker aces are not always high: If we have a 5-4-3-2-A hand, the ace serves as a `1` rather than a `14`; we adjust `ranks` accordingly in `rankings`. To test for a flush, we look at the collection of suits and ask if they are all `the_same`."
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"def ranking1(hand) -> tuple:\n",
" \"\"\"Return a value indicating how high the hand ranks.\"\"\"\n",
" counts = Counter(map(rank, hand))\n",
" groups = sorted(((counts[r], r) for r in counts), reverse=True)\n",
" type, ranks = zip(*groups)\n",
" if ranks == (14, 5, 4, 3, 2):\n",
" ranks = (5, 4, 3, 2, 1)\n",
" type = special_type(hand, ranks) or type\n",
" return (type, ranks)\n",
"\n",
"def special_type(hand, ranks) -> tuple:\n",
" \"\"\"For a flush or straight, return a tuple comparable with `type` in `ranking`.\"\"\"\n",
" straight = len(ranks) == 5 and max(ranks) - min(ranks) == 4\n",
" flush = the_same(map(suit, hand))\n",
" return ((4, 2) if straight and flush else \n",
" (3, 1, 3) if flush else \n",
" (3, 1, 2) if straight else ())\n",
"\n",
"def the_same(things) -> bool: \n",
" \"\"\"Are all the things actually the same?\"\"\"\n",
" return len(set(things)) <= 1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Testing Poker Hands\n",
"\n",
"Below is a list of `hands`, with four examples of each **type**, all in descending ranking order (i.e. best to worst). The `test` function asserts that:\n",
"- The `ranking` function agrees with this ordering.\n",
"- The order of cards within a hand does not matter—every permutation of cards is ranked the same. \n",
"- Swapping the suits around (e.g. swapping every spade with every heart) does not change the ranking."
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"hands = [cards(h) for h in ( \n",
" 'As Ac Ah Ad Ad', 'Kh Kd Ks Kc Kh', '3h 3s 3d 3c 3c', '2s 2c 2d 2h 2h', # 5 of a kind \n",
" 'As Ks Qs Ts Js', 'Kc Qc Jc Tc 9c', '6d 5d 4d 3d 2d', '5h 4h 3h 2h Ah', # straight flush \n",
" 'As Ac Ad Ah 2s', '7s 7c 7d 2d 7h', '6s 6c 6d 6h 9s', 'As 5h 5c 5d 5s', # four of a kind \n",
" 'Th Tc Td 5h 5c', '9h 9c 9d 8c 8h', '6h 6c 6d Tc Th', '5c 5d 5s As Ah', # full house\n",
" 'As 2s 3s 4s 6s', 'Kc Qc Jc Tc 2c', 'Qc Jc Tc 9c 7c', '4h 5h 6h 7h 9h', # flush\n",
" 'As Kd Qc Td Jh', 'Kc Qh Jd Th 9c', '6c 5d 4h 3s 2s', 'As 2d 3c 4h 5s', # straight\n",
" 'As Ac Ad 2h 3h', 'Ts Tc Th 9s 8c', 'Ts Tc Th 9s 7c', '9h 9s 9d Ah Kh', # three of a kind\n",
" 'Ts Tc 5s 5c 8h', 'Ts Tc 5s 5c 7h', '9s 9c 8s 8c As', '3s 3c 2s 2d Ah', # two pair \n",
" 'As Ac 4c 5s 6s', '4s 4c As Ks Qs', '4h 4d Kh Qd Jd', '2d 2c Ad Kd Qd', # pair \n",
" 'Ah 3s 4s 5s 6s', 'Kh Qh Jh Th 8d', '7d 2s 4s 5s 6s', '7h 6s 5d 3s 2d', # high card\n",
" )]\n",
"\n",
"def test(ranking, hands=hands) -> bool:\n",
" \"\"\"Test that `ranking` preserves order of `hands`, and that permuting cards is irrelevant.\"\"\"\n",
" assert hands == sorted(hands, key=ranking, reverse=True)\n",
" trans = str.maketrans('shdc', 'hscd')\n",
" for hand in hands: \n",
" assert the_same(ranking(h) for h in permutations(hand))\n",
" assert the_same([ranking(hand), ranking([c.translate(trans) for c in hand])])\n",
" return len(hands)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"40"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test(ranking1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see what the rankings look like:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'As Ac Ah Ad Ad': ((5,), (14,)),\n",
" 'Kh Kd Ks Kc Kh': ((5,), (13,)),\n",
" '3h 3s 3d 3c 3c': ((5,), (3,)),\n",
" '2s 2c 2d 2h 2h': ((5,), (2,)),\n",
" 'As Ks Qs Ts Js': ((4, 2), (14, 13, 12, 11, 10)),\n",
" 'Kc Qc Jc Tc 9c': ((4, 2), (13, 12, 11, 10, 9)),\n",
" '6d 5d 4d 3d 2d': ((4, 2), (6, 5, 4, 3, 2)),\n",
" '5h 4h 3h 2h Ah': ((4, 2), (5, 4, 3, 2, 1)),\n",
" 'As Ac Ad Ah 2s': ((4, 1), (14, 2)),\n",
" '7s 7c 7d 2d 7h': ((4, 1), (7, 2)),\n",
" '6s 6c 6d 6h 9s': ((4, 1), (6, 9)),\n",
" 'As 5h 5c 5d 5s': ((4, 1), (5, 14)),\n",
" 'Th Tc Td 5h 5c': ((3, 2), (10, 5)),\n",
" '9h 9c 9d 8c 8h': ((3, 2), (9, 8)),\n",
" '6h 6c 6d Tc Th': ((3, 2), (6, 10)),\n",
" '5c 5d 5s As Ah': ((3, 2), (5, 14)),\n",
" 'As 2s 3s 4s 6s': ((3, 1, 3), (14, 6, 4, 3, 2)),\n",
" 'Kc Qc Jc Tc 2c': ((3, 1, 3), (13, 12, 11, 10, 2)),\n",
" 'Qc Jc Tc 9c 7c': ((3, 1, 3), (12, 11, 10, 9, 7)),\n",
" '4h 5h 6h 7h 9h': ((3, 1, 3), (9, 7, 6, 5, 4)),\n",
" 'As Kd Qc Td Jh': ((3, 1, 2), (14, 13, 12, 11, 10)),\n",
" 'Kc Qh Jd Th 9c': ((3, 1, 2), (13, 12, 11, 10, 9)),\n",
" '6c 5d 4h 3s 2s': ((3, 1, 2), (6, 5, 4, 3, 2)),\n",
" 'As 2d 3c 4h 5s': ((3, 1, 2), (5, 4, 3, 2, 1)),\n",
" 'As Ac Ad 2h 3h': ((3, 1, 1), (14, 3, 2)),\n",
" 'Ts Tc Th 9s 8c': ((3, 1, 1), (10, 9, 8)),\n",
" 'Ts Tc Th 9s 7c': ((3, 1, 1), (10, 9, 7)),\n",
" '9h 9s 9d Ah Kh': ((3, 1, 1), (9, 14, 13)),\n",
" 'Ts Tc 5s 5c 8h': ((2, 2, 1), (10, 5, 8)),\n",
" 'Ts Tc 5s 5c 7h': ((2, 2, 1), (10, 5, 7)),\n",
" '9s 9c 8s 8c As': ((2, 2, 1), (9, 8, 14)),\n",
" '3s 3c 2s 2d Ah': ((2, 2, 1), (3, 2, 14)),\n",
" 'As Ac 4c 5s 6s': ((2, 1, 1, 1), (14, 6, 5, 4)),\n",
" '4s 4c As Ks Qs': ((2, 1, 1, 1), (4, 14, 13, 12)),\n",
" '4h 4d Kh Qd Jd': ((2, 1, 1, 1), (4, 13, 12, 11)),\n",
" '2d 2c Ad Kd Qd': ((2, 1, 1, 1), (2, 14, 13, 12)),\n",
" 'Ah 3s 4s 5s 6s': ((1, 1, 1, 1, 1), (14, 6, 5, 4, 3)),\n",
" 'Kh Qh Jh Th 8d': ((1, 1, 1, 1, 1), (13, 12, 11, 10, 8)),\n",
" '7d 2s 4s 5s 6s': ((1, 1, 1, 1, 1), (7, 6, 5, 4, 2)),\n",
" '7h 6s 5d 3s 2d': ((1, 1, 1, 1, 1), (7, 6, 5, 3, 2))}"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"{join(h): ranking1(h) for h in hands}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Alternative Definition: `ranking2`\n",
"\n",
"If you think dealing with integer partitions of 5 was a little too abstract, and/or that fabricating `(3, 1, 3)` as the type for a flush was a little too *ad hoc*, then here's an alternative ranking function, `ranking2`, that you might find more straightforward. Instead of type tuples, it uses the integers 9 to 0 for types, and then does tiebreakers in the same way as `ranking`.\n",
"\n",
"The one tricky part is the use of `kinds/kind`: for a two-pair hand `8h 9c 8d 9d 4h`, `kinds` will be the list `[[], [4], [9, 8], [], [], []]`, and `kinds[2]` is `[9, 8]` (meaning: what ranks have 2 of a kind? 9 and 8, with the highest rank always first), and `kind(1)` is `4` (meaning: what rank has one of a kind? 4). "
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"def ranking2(hand) -> tuple:\n",
" \"\"\"Return a value indicating how high the hand ranks.\"\"\"\n",
" ranks = sorted(map(rank, hand), reverse=True)\n",
" if ranks == [14, 5, 4, 3, 2]:\n",
" ranks = [5, 4, 3, 2, 1]\n",
" straight = len(set(ranks)) == 5 and max(ranks) - min(ranks) == 4\n",
" flush = the_same(map(suit, hand))\n",
" kinds = [[] for n in range(6)]\n",
" kind = lambda n: kinds[n][0]\n",
" for r in sorted(set(ranks), reverse=True):\n",
" kinds[ranks.count(r)].append(r)\n",
" return ((9, max(ranks)) if kinds[5] else\n",
" (8, max(ranks)) if straight and flush else\n",
" (7, kind(4), kind(1)) if kinds[4] else\n",
" (6, kind(3), kind(2)) if kinds[3] and kinds[2] else\n",
" (5, *ranks) if flush else\n",
" (4, max(ranks)) if straight else\n",
" (3, kind(3), *kinds[1]) if kinds[3] else\n",
" (2, *kinds[2], kind(1)) if len(kinds[2]) == 2 else\n",
" (1, kind(2), *kinds[1]) if kinds[2] else\n",
" (0, *ranks))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"`ranking2` passes the tests:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"40"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"test(ranking2, hands)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here are what the `ranking2` rankings look like—a little more concise:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'As Ac Ah Ad Ad': (9, 14),\n",
" 'Kh Kd Ks Kc Kh': (9, 13),\n",
" '3h 3s 3d 3c 3c': (9, 3),\n",
" '2s 2c 2d 2h 2h': (9, 2),\n",
" 'As Ks Qs Ts Js': (8, 14),\n",
" 'Kc Qc Jc Tc 9c': (8, 13),\n",
" '6d 5d 4d 3d 2d': (8, 6),\n",
" '5h 4h 3h 2h Ah': (8, 5),\n",
" 'As Ac Ad Ah 2s': (7, 14, 2),\n",
" '7s 7c 7d 2d 7h': (7, 7, 2),\n",
" '6s 6c 6d 6h 9s': (7, 6, 9),\n",
" 'As 5h 5c 5d 5s': (7, 5, 14),\n",
" 'Th Tc Td 5h 5c': (6, 10, 5),\n",
" '9h 9c 9d 8c 8h': (6, 9, 8),\n",
" '6h 6c 6d Tc Th': (6, 6, 10),\n",
" '5c 5d 5s As Ah': (6, 5, 14),\n",
" 'As 2s 3s 4s 6s': (5, 14, 6, 4, 3, 2),\n",
" 'Kc Qc Jc Tc 2c': (5, 13, 12, 11, 10, 2),\n",
" 'Qc Jc Tc 9c 7c': (5, 12, 11, 10, 9, 7),\n",
" '4h 5h 6h 7h 9h': (5, 9, 7, 6, 5, 4),\n",
" 'As Kd Qc Td Jh': (4, 14),\n",
" 'Kc Qh Jd Th 9c': (4, 13),\n",
" '6c 5d 4h 3s 2s': (4, 6),\n",
" 'As 2d 3c 4h 5s': (4, 5),\n",
" 'As Ac Ad 2h 3h': (3, 14, 3, 2),\n",
" 'Ts Tc Th 9s 8c': (3, 10, 9, 8),\n",
" 'Ts Tc Th 9s 7c': (3, 10, 9, 7),\n",
" '9h 9s 9d Ah Kh': (3, 9, 14, 13),\n",
" 'Ts Tc 5s 5c 8h': (2, 10, 5, 8),\n",
" 'Ts Tc 5s 5c 7h': (2, 10, 5, 7),\n",
" '9s 9c 8s 8c As': (2, 9, 8, 14),\n",
" '3s 3c 2s 2d Ah': (2, 3, 2, 14),\n",
" 'As Ac 4c 5s 6s': (1, 14, 6, 5, 4),\n",
" '4s 4c As Ks Qs': (1, 4, 14, 13, 12),\n",
" '4h 4d Kh Qd Jd': (1, 4, 13, 12, 11),\n",
" '2d 2c Ad Kd Qd': (1, 2, 14, 13, 12),\n",
" 'Ah 3s 4s 5s 6s': (0, 14, 6, 5, 4, 3),\n",
" 'Kh Qh Jh Th 8d': (0, 13, 12, 11, 10, 8),\n",
" '7d 2s 4s 5s 6s': (0, 7, 6, 5, 4, 2),\n",
" '7h 6s 5d 3s 2d': (0, 7, 6, 5, 3, 2)}"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"{join(h): ranking2(h) for h in hands}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Timing\n",
"\n",
"Below we see that `ranking2` is about 25% faster than `ranking1`, so use `ranking2` when speed is important."
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"24.5 ms ± 381 µs per loop (mean ± std. dev. of 7 runs, 10 loops each)\n",
"19.6 ms ± 432 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)\n"
]
}
],
"source": [
"%timeit test(ranking1, hands)\n",
"%timeit test(ranking2, hands)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Winning\n",
"\n",
"It is tempting to define a function `winner(hands) -> Hand` to see who wins a round, and we will do that, for convenience. But in poker if two hands are exactly the same except for suits, then they tie. So to be more precise we will also define `winners(hand)` to return a *set* of winners (which in most cases will have only one member).\n",
"\n",
"Note that **ranking** is the fundamental idea, and **winning** is determined by ranking. Some programmers try to answer the question of whether one hand is better than another by defining `better(hand1, hand2)`. They quickly find that it is hopelessly complex to be considering two hands at the same time, asking things like \"this hand has three of a kind; does the other hand have anything better?\" It is much simpler to compare rankings. \n",
"\n",
"Also note that using the word **ranking** rather than **scoring** is deliberate. If we were doing scoring, it would make sense to ask for an average score for a set of hands. With ranking, we can sort hands from best to worst, but it makes no sense to say a straight (type 4) and a straight flush (type 8) average out to a full house (type 6).\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"def winner(hands) -> Hand: \n",
" \"\"\"One of the winning hands (there might be others).\"\"\"\n",
" return max(hands, key=ranking2)\n",
"\n",
"def winners(hands) -> set:\n",
" \"\"\"The set of hands with the best ranking.\"\"\"\n",
" best = max(map(ranking2, hands))\n",
" return {h for h in hands if ranking2(h) == best}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Type Names\n",
"\n",
"So far, the names of the types (e.g. \"full house\") have appeared only in prose, not in the code. Let's fix that. The hand type returned by `ranking2` is an integer ranging from 0 to 9 that can be used as an index into a tuple of `type_names`:"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"types = range(10)\n",
"\n",
"type_names = ('high card', 'one pair', 'two pair', 'three of a kind', 'straight',\n",
" 'flush', 'full house', 'four of a kind', 'straight flush', 'five of a kind')\n",
"\n",
"def type_name(hand) -> str: return type_names[ranking2(hand)[0]]"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'As Ac Ah Ad Ad': 'five of a kind',\n",
" 'Kh Kd Ks Kc Kh': 'five of a kind',\n",
" '3h 3s 3d 3c 3c': 'five of a kind',\n",
" '2s 2c 2d 2h 2h': 'five of a kind',\n",
" 'As Ks Qs Ts Js': 'straight flush',\n",
" 'Kc Qc Jc Tc 9c': 'straight flush',\n",
" '6d 5d 4d 3d 2d': 'straight flush',\n",
" '5h 4h 3h 2h Ah': 'straight flush',\n",
" 'As Ac Ad Ah 2s': 'four of a kind',\n",
" '7s 7c 7d 2d 7h': 'four of a kind',\n",
" '6s 6c 6d 6h 9s': 'four of a kind',\n",
" 'As 5h 5c 5d 5s': 'four of a kind',\n",
" 'Th Tc Td 5h 5c': 'full house',\n",
" '9h 9c 9d 8c 8h': 'full house',\n",
" '6h 6c 6d Tc Th': 'full house',\n",
" '5c 5d 5s As Ah': 'full house',\n",
" 'As 2s 3s 4s 6s': 'flush',\n",
" 'Kc Qc Jc Tc 2c': 'flush',\n",
" 'Qc Jc Tc 9c 7c': 'flush',\n",
" '4h 5h 6h 7h 9h': 'flush',\n",
" 'As Kd Qc Td Jh': 'straight',\n",
" 'Kc Qh Jd Th 9c': 'straight',\n",
" '6c 5d 4h 3s 2s': 'straight',\n",
" 'As 2d 3c 4h 5s': 'straight',\n",
" 'As Ac Ad 2h 3h': 'three of a kind',\n",
" 'Ts Tc Th 9s 8c': 'three of a kind',\n",
" 'Ts Tc Th 9s 7c': 'three of a kind',\n",
" '9h 9s 9d Ah Kh': 'three of a kind',\n",
" 'Ts Tc 5s 5c 8h': 'two pair',\n",
" 'Ts Tc 5s 5c 7h': 'two pair',\n",
" '9s 9c 8s 8c As': 'two pair',\n",
" '3s 3c 2s 2d Ah': 'two pair',\n",
" 'As Ac 4c 5s 6s': 'one pair',\n",
" '4s 4c As Ks Qs': 'one pair',\n",
" '4h 4d Kh Qd Jd': 'one pair',\n",
" '2d 2c Ad Kd Qd': 'one pair',\n",
" 'Ah 3s 4s 5s 6s': 'high card',\n",
" 'Kh Qh Jh Th 8d': 'high card',\n",
" '7d 2s 4s 5s 6s': 'high card',\n",
" '7h 6s 5d 3s 2d': 'high card'}"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"{join(h): type_name(h) for h in hands}"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Poker Variants\n",
"\n",
"There are many variants of poker. In some variants a player makes a hand by combining face-down private cards that they hold, called **hole cards**, with face-up shared cards in the middle of the table called **community cards**. Let's look at a few variants from the point of view of card ranking. Again, we'll ignore the betting parts.\n",
"\n",
"# Texas Hold 'Em Poker\n",
"\n",
"In Texas Hold 'Em, one of the most popular games, each player has two hole cards, and everyone shares five community cards. A player can choose any subset of the seven cards for their hand. \n",
"\n",
"Finding the best hand from among the hole and community cards is straightforward: just try every combination and choose a hand with the maximum ranking (that's what the function `winner` does):"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [],
"source": [
"def texas_best(hole, community) -> Hand:\n",
" \"\"\"Find the best hand from any selection of 2 hole and 5 community cards.\"\"\"\n",
" assert len(hole) == 2 and len(community) == 5\n",
" return winner(combinations(hole + community, 5))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A player can make a full house with the following hole cards and community cards:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('As', '7d', 'Ac', 'Ah', '7c')"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"texas_best(cards('As 7d'), cards('Ac 8d 9d Ah 7c'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Omaha Hold 'Em Poker\n",
"\n",
"In Omaha Hold 'Em, players get four hole cards, and they have to use exactly two of them, plus three of the five community cards, to make their hand. Not quite as straightforward to find the best hand:"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [],
"source": [
"def omaha_best(hole, community) -> Hand:\n",
" \"\"\"Find the best hand using 2 of 4 hole cards and 3 of 5 community cards.\"\"\"\n",
" assert len(hole) == 4 and len(community) == 5\n",
" return winner(h2 + c3 for h2 in combinations(hole, 2) \n",
" for c3 in combinations(community, 3))"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('As', '7d', 'Ac', 'Ah', '7c')"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"omaha_best(cards('As 7d 6d 5d'), cards('Ac 8d 9d Ah 7c'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the following hand, the hole plus community cards include a royal straight flush and a fives-over-tens full house. But neither of these hands can be made because the hand must have exactly two hole cards, so we end up with three fives."
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('Ad', '5d', 'Jd', '5c', '5h')"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"omaha_best(cards('Ad Kd Qd 5d'), cards('Jd Td Tc 5c 5h'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Three-D Poker\n",
"\n",
"In this novel variant, due to Bram Cohen, there are two hole cards and 15 community cards arranged in three sets of five. Players must use their two hole cards, plus exactly one card from each of the three sets of community cards."
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [],
"source": [
"def threeD_best(hole, community) -> Hand:\n",
" \"\"\"Find the best hand from the 2 hole cards plus 1 each from \n",
" the first 5, middle 5, and last 5 of the 15 community cards.\"\"\"\n",
" assert len(hole) == 2 and len(community) == 15\n",
" A, B, C = community[0:5], community[5:10], community[10:15]\n",
" return winner([*hole, *c3] for c3 in product(A, B, C))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"In the example below, the player has a queen hole card and there are two queen community cards, but they are in the same set, so the player could only get one of them. It turns out that it is better to give up on the idea of three queens and take two kings and a 4 instead, making two pair."
]
},
{
"cell_type": "code",
"execution_count": 29,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"['Qh', '4s', 'Kd', '4h', 'Kc']"
]
},
"execution_count": 29,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"threeD_best(cards('Qh 4s'), cards('Qs Qc Kd Ts Ah 5d 4h 7s 9c 6s 5h 7c Kc Kh 9h'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Joker Poker\n",
"\n",
"Sometimes in friendly house games, a joker or two is added to the deck. A joker can serve as any card the player wants it to be, including a card already in their hand (that's how you get five-of-a-kind)."
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"joker ='**'\n",
"deck = [r + s for r in rankstr for s in 'cdhs'] # Regular Deck of 52 cards\n",
"deck54 = [joker, joker, *deck] # Deck of 54 cards including two jokers\n",
"\n",
"def joker_best(hand) -> Hand:\n",
" \"\"\"Find the best hand by replacing any jokers with any other card.\"\"\"\n",
" replacements = [deck if card == joker else [card] for card in hand]\n",
" return winner(product(*replacements))"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('8d', '8c', '7d', '6d', '8s')"
]
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joker_best(cards('8d ** 7d 6d 8s')) # One Joker used to make three of a kind"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"('8d', '9d', '7d', '6d', 'Td')"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"joker_best(cards('8d ** 7d 6d **')) # Two Jokers used to make a straight flush"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"All the poker variants we have seen so far, even joker poker, were solved by finding a hand with maximum ranking out of all the possible hands that could be made with community cards or jokers. There was always a clear-cut way to do this, and one definitive best hand. Next we will see a variant where that is no longer true.\n",
"\n",
"# Draw Poker\n",
"\n",
"In draw poker players are given the option to **discard** one or more card(s) and **replace** them with new one(s) drawn from the deck. But unlike in joker poker where you get to choose the replacement, in draw poker you're at the mercy of the luck of the draw. \n",
"\n",
"In draw poker there is no **best hand** that you can make with certainty; instead we need to find the **best action** (which card to discard), with the understanding that the action will sometimes work (we hit that straight) and sometimes not. The best action is determined by the best **average** over all possible outcomes of the action (i.e. all possible draws of cards).\n",
"\n",
"We could try to find the action that maximizes the average type number of the resulting hands. But that's not quite right: there's a big advantage in going from type 1 (one pair) to type 3 (three of a kind), because that very often makes the difference between losing and winning. There is less of an advantage in going from type 7 (four of a kind) to type 9 (five of a kind) because the four of a kind will win most of the time anyway. \n",
"\n",
"# Win Probability\n",
"\n",
"What we really want to do is **maximize the expected probability of winning**. The probability of winning depends on many things: the number of other players, the community cards if any, the other rules of the game (e.g. are draws or jokers allowed), the skill of the other players, the hints that the other players have given about their cards through their bets and physical tells, etc.\n",
"\n",
"We'll simplify by ignoring most of these factors. We'll assume **heads up** poker, in which there are only two players. A hand's probability of winning is proportional to the percentage of hands that it is better than, out of all hands. Wikipedia [says](https://en.wikipedia.org/wiki/Poker_probability) that 50.1% of all hands are \"high card\", so we might say that a \"high card\" hand has a 50.1% probability of winning. But that can't be the full story, because an ace high card has a much better chance of winning than a 7 high card. So we'll estimate that the probability of a hand winning is a linear interpolation, based on the value of the high card in the hand, between the cumulative probability of the hand's type and the cumulative probability of one type lower. (This assumption is wrong, again, because the relationship is not exactly linear (e.g. the lowest possible high card for type 0 is actually a 7, because otherwise the hand would be a straight) and because non-high cards also come into play, but maybe it is a close enough approximation.) I'll use Wikipedia's [Frequency of 5-card poker hands](https://en.wikipedia.org/wiki/Poker_probability) to define `deal_win_P`, the cummulative probabilities keyed by hand type numbers:"
]
},
{
"cell_type": "code",
"execution_count": 33,
"metadata": {},
"outputs": [],
"source": [
"def cumsum(numbers, normalize=True) -> list:\n",
" \"\"\"cumsum(numbers)[i] gives the cumulative sum of the first n numbers, \n",
" optionally normalized to sum to 1.\"\"\"\n",
" denom = sum(numbers) if normalize else 1\n",
" return [sum(numbers[:n]) / denom for n in range(len(numbers) + 1)]\n",
"\n",
"deal_win_P = cumsum([1302540, 1098240, 123552, 54912, 10200, 5108, 3744, 624, 40, 0])"
]
},
{
"cell_type": "code",
"execution_count": 34,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.0,\n",
" 0.5011773940345369,\n",
" 0.9237464216455813,\n",
" 0.9712854372518238,\n",
" 0.992413888632376,\n",
" 0.9963385354141656,\n",
" 0.9983039369593991,\n",
" 0.9997445131898913,\n",
" 0.9999846092283067,\n",
" 1.0,\n",
" 1.0]"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"deal_win_P "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This says that 50.1% of all random hands have the type \"high card\", 92.3% are \"high card\" or \"one pair\", 97.1% are \"two pair\" or worse, and so on. With this I can define `win_probability`:"
]
},
{
"cell_type": "code",
"execution_count": 35,
"metadata": {},
"outputs": [],
"source": [
"def win_probability(hand, P=deal_win_P) -> float:\n",
" \"\"\"Approximate win probability for a hand, given a list, P, of win probabilities for types.\"\"\"\n",
" type, hi, *_ = ranking2(hand)\n",
" return P[type] + (hi - 1) / 13 * (P[type + 1] - P[type])"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Here are win probabilities for all the test hands, expressed in percents. The `deal_win_P` probabilities assume no wild cards, and thus no five-of-a-kind; therefore an ace-high straight flush (royal straight flush) is the highest possible hand, and gets a 100% win probability."
]
},
{
"cell_type": "code",
"execution_count": 36,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"As Ac Ah Ad Ad 100.00000% five of a kind\n",
"Kh Kd Ks Kc Kh 100.00000% five of a kind\n",
"3h 3s 3d 3c 3c 100.00000% five of a kind\n",
"2s 2c 2d 2h 2h 100.00000% five of a kind\n",
"As Ks Qs Ts Js 100.00000% straight flush\n",
"Kc Qc Jc Tc 9c 99.99988% straight flush\n",
"6d 5d 4d 3d 2d 99.99905% straight flush\n",
"5h 4h 3h 2h Ah 99.99893% straight flush\n",
"As Ac Ad Ah 2s 99.99846% four of a kind\n",
"7s 7c 7d 2d 7h 99.98553% four of a kind\n",
"6s 6c 6d 6h 9s 99.98369% four of a kind\n",
"As 5h 5c 5d 5s 99.98184% four of a kind\n",
"Th Tc Td 5h 5c 99.93013% full house\n",
"9h 9c 9d 8c 8h 99.91904% full house\n",
"6h 6c 6d Tc Th 99.88580% full house\n",
"5c 5d 5s As Ah 99.87472% full house\n",
"As 2s 3s 4s 6s 99.83039% flush\n",
"Kc Qc Jc Tc 2c 99.81528% flush\n",
"Qc Jc Tc 9c 7c 99.80016% flush\n",
"4h 5h 6h 7h 9h 99.75480% flush\n",
"As Kd Qc Td Jh 99.63385% straight\n",
"Kc Qh Jd Th 9c 99.60366% straight\n",
"6c 5d 4h 3s 2s 99.39234% straight\n",
"As 2d 3c 4h 5s 99.36215% straight\n",
"As Ac Ad 2h 3h 99.24139% three of a kind\n",
"Ts Tc Th 9s 8c 98.59128% three of a kind\n",
"Ts Tc Th 9s 7c 98.59128% three of a kind\n",
"9h 9s 9d Ah Kh 98.42876% three of a kind\n",
"Ts Tc 5s 5c 8h 95.66580% two pair\n",
"Ts Tc 5s 5c 7h 95.66580% two pair\n",
"9s 9c 8s 8c As 95.30012% two pair\n",
"3s 3c 2s 2d Ah 93.10601% two pair\n",
"As Ac 4c 5s 6s 92.37464% one pair\n",
"4s 4c As Ks Qs 59.86933% one pair\n",
"4h 4d Kh Qd Jd 59.86933% one pair\n",
"2d 2c Ad Kd Qd 53.36827% one pair\n",
"Ah 3s 4s 5s 6s 50.11774% high card\n",
"Kh Qh Jh Th 8d 46.26253% high card\n",
"7d 2s 4s 5s 6s 23.13126% high card\n",
"7h 6s 5d 3s 2d 23.13126% high card\n"
]
}
],
"source": [
"for h in hands:\n",
" print(f'{join(h)} {win_probability(h):10.5%} {type_name(h)}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Do you really expect to win 50% of the time with a high card ace, or 60% of the time with a pair of fours? Not in a game with community cards, or draws, or jokers, or more than two players. But if we're asking \"*two players just got dealt five cards each; what's the probability that my five cards are better than the others?*\" then these numbers are approximately right. If we were playing a different game, we would pass in a different probability list `P` to `win_probability`.\n",
"\n",
"Now we can \"solve\" draw poker. In our simplified variant players are allowed to replace one card only. (It is possible that `nocard` is the best action, e.g. if you already have a full house, straight, or flush.) `draw_best_action` returns the action that maximizes the expected value of the resulting hand. That is, it finds the card that, when discarded, maximizes the expected (mean) win probability over all possible replacement cards. It is traditional to use `E` for expected value. "
]
},
{
"cell_type": "code",
"execution_count": 37,
"metadata": {},
"outputs": [],
"source": [
"def draw_best_action(hand, P=deal_win_P) -> Card:\n",
" \"\"\"What card should you discard (or None) from this hand?\"\"\"\n",
" def E(c): return mean(win_probability(h, P) for h in discard_outcomes(c, hand))\n",
" return max([nocard, *hand], key=E)\n",
"\n",
"def discard_outcomes(card, hand) -> list:\n",
" \"\"\"All the hands that result from replacing `card` in `hand` with a new card from the `deck`.\"\"\"\n",
" return ([hand] if not card else\n",
" [replace(card, new, hand)\n",
" for new in deck if new not in hand])\n",
"\n",
"def replace(old, new, alist) -> list:\n",
" \"\"\"Replace old with new in alist.\"\"\"\n",
" return [new if c == old else c for c in alist]\n",
"\n",
"nocard = ''"
]
},
{
"cell_type": "code",
"execution_count": 38,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'2d'"
]
},
"execution_count": 38,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"draw_best_action(cards('2d 7d 4d 9d As'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This says that with the given hand the best action is to discard the low card, the 2 of diamonds. Drawing a new card could give us a pair of 4s, 7s, 9s, or aces, or it could leave us with only an ace high. "
]
},
{
"cell_type": "code",
"execution_count": 39,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Kc'"
]
},
"execution_count": 39,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"draw_best_action(cards('2d 3d 4d Kc As'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This time the best action is to discard the King, even though it is a high card, to try for the straight."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Gathering Statistics for Type Probabilities\n",
"\n",
"I would like to gather some hand-type probabilities for different game variants. When we are just dealing five cards, it is easy enough to use combinatorics to compute exactly the proportion of hands of each type, as [Wikipedia's does](https://en.wikipedia.org/wiki/Poker_probability). But with complex games involving drawing from the deck or choosing community cards it can be easier to estimate probabilities by doing a simulation.\n",
"\n",
"I'll use the notion of a **handmaker**: a function of zero arguments (except maybe optional parameters) that when called returns a random hand, according to the best possible strategy. So `texas_handmaker` deals seven cards, uses `split` to split them into 2 hole cards and 5 community cards, and then determines the best hand that can be made from those cards with `texas_best`. The other handmaker functions do likewise. The `draw_handmaker` samples 5 cards, decides what the optimal action is, and then draws a random card to replace the discard."
]
},
{
"cell_type": "code",
"execution_count": 40,
"metadata": {},
"outputs": [],
"source": [
"def deal_handmaker() -> Hand: return deal(5)\n",
"def texas_handmaker() -> Hand: return texas_best(*deal(2, 5))\n",
"def omaha_handmaker() -> Hand: return omaha_best(*deal(4, 5))\n",
"def joker_handmaker() -> Hand: return joker_best(deal(5, deck=deck54))\n",
"def threeD_handmaker() -> Hand: return threeD_best(*deal(2, 15))\n",
"\n",
"def draw_handmaker(P=deal_win_P) -> Hand:\n",
" hand = deal(5)\n",
" discard = draw_best_action(hand, P)\n",
" return replace(discard, draw_card(deck, butnot=hand), hand)\n",
"\n",
"handmakers = (deal_handmaker, draw_handmaker, joker_handmaker, \n",
" texas_handmaker, omaha_handmaker, threeD_handmaker)"
]
},
{
"cell_type": "code",
"execution_count": 41,
"metadata": {},
"outputs": [],
"source": [
"def deal(hole, community=0, deck=deck): \n",
" cards = random.sample(deck, hole + community)\n",
" return cards if not community else (cards[:hole], cards[hole:])\n",
"\n",
"def draw_card(deck, butnot=()) -> Card:\n",
" \"\"\"Randomly draw a card from deck, but make sure it is not in `butnot`.\"\"\"\n",
" while True:\n",
" card = random.choice(deck)\n",
" if card not in butnot:\n",
" return card"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we're ready to run a simulation. The function `estimated_type_frequency` runs a handmaker repeatedly and returns a counter of frequencies for hand types. We use a `lru_cache` decorator so that we don't wait a long time if we repeat a calculation in a cell farther down in the notebook."
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"@lru_cache(None)\n",
"def estimated_type_frequency(handmaker, n) -> Counter:\n",
" \"\"\"A counter of hand type names for n hands made by handmaker.\"\"\"\n",
" return Counter(type_name(handmaker()) for _ in range(n))"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'high card': 508,\n",
" 'one pair': 421,\n",
" 'flush': 2,\n",
" 'two pair': 44,\n",
" 'full house': 3,\n",
" 'three of a kind': 18,\n",
" 'straight': 3,\n",
" 'four of a kind': 1})"
]
},
"execution_count": 43,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"estimated_type_frequency(deal_handmaker, 1000)"
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [],
"source": [
"def stats(handmakers, n=10**5):\n",
" \"\"\"Print hand type probability statistics for each handmaker.\"\"\"\n",
" samples = [estimated_type_frequency(h, n) for h in handmakers]\n",
" def name(h): return h.__name__.split('_')[0]\n",
" print(f'{\"Type of Hand\":15} {join(f\"{name(h):>8s}\" for h in handmakers)}')\n",
" print(f'{\"-\"*15} {join(\"-\"*8 for h in handmakers)}')\n",
" for t in reversed(type_names):\n",
" print(f'{t:15} ', join(f'{s[t]/n:8.4%}' for s in samples))"
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Type of Hand deal draw joker texas omaha threeD\n",
"--------------- -------- -------- -------- -------- -------- --------\n",
"five of a kind 0.0000% 0.0000% 0.0070% 0.0000% 0.0000% 0.0000%\n",
"straight flush 0.0000% 0.0050% 0.0190% 0.0410% 0.0990% 0.1790%\n",
"four of a kind 0.0300% 0.0600% 0.2840% 0.1930% 0.4540% 1.5450%\n",
"full house 0.1490% 0.6540% 0.3300% 2.5750% 6.3800% 9.7730%\n",
"flush 0.1970% 0.7830% 0.3230% 2.9890% 6.7390% 7.5840%\n",
"straight 0.3980% 1.2720% 1.0650% 4.5740% 11.2920% 18.6330%\n",
"three of a kind 2.1880% 3.7060% 7.4280% 4.8560% 8.8300% 25.9350%\n",
"two pair 4.7220% 9.6350% 3.8690% 23.6260% 36.7720% 28.3140%\n",
"one pair 42.1940% 48.0430% 45.5100% 43.8630% 26.4810% 8.0260%\n",
"high card 50.1220% 35.8420% 41.1650% 17.2830% 2.9530% 0.0110%\n",
"CPU times: user 4min 25s, sys: 161 ms, total: 4min 25s\n",
"Wall time: 4min 25s\n"
]
}
],
"source": [
"%time stats(handmakers)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The `deal` column shows good agreement with the [known poker probabilities](https://en.wikipedia.org/wiki/Poker_probability). The other columns show that hands get better as we allow more options in the game, with Omaha yielding much higher hands than Texas, but Three-D yielding the highest hands of all. There is an inversion in Omaha where straights are more probable than three of a kind. It appears that is because many of the three-of-a-kinds become full houses (which are just three-of-a-kinds where the other two cards happen to match). In Three-D, there is an inversion in that full houses are more probable than flushes; perhaps a flush should beat a full house in that game.\n",
"\n",
"# Draw Poker Revisited\n",
"\n",
"Now that we have seen the stats for what types of hands we can achieve in draw poker by following `draw_best_action`, it makes sense that we modify the best actions! That is, `draw_best_action` assumed that \"high card\" wins about 50% of the time. But we see in the `draw` column of the stats chart that if players use their draw card properly, a high card will only win about 35% of hands. That should change our actions, making us more willing to take risks to get a pair or higher. \n",
"\n",
"The new cumulative winning percentages for draw poker, assuming players will chose the best action for their draw, can be computed as follows:"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[0.0,\n",
" 0.35842,\n",
" 0.83885,\n",
" 0.9352,\n",
" 0.97226,\n",
" 0.98498,\n",
" 0.99281,\n",
" 0.99935,\n",
" 0.99995,\n",
" 1.0,\n",
" 1.0]"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f = estimated_type_frequency(draw_handmaker, 10**5)\n",
"draw_win_P = cumsum([f[type_names[type]] for type in types])\n",
"draw_win_P"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now let's consider the following hand under both sets of probabilities:"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'4s'"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"hand = cards('4s Qc 6d 7s 8c')\n",
"\n",
"draw_best_action(hand, P=deal_win_P)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Under the old `deal_win_P` probabilities, the best play is the safe play: discard the low card. We'll end up with either a pair or at least a queen high.\n",
"\n",
"But under the new `draw_win_P` probabilities, the best action has changed:"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'Qc'"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"draw_best_action(hand, P=draw_win_P)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This is a risky play: we give up our high card, so our hand could get worse. But there's a 4/47 chance of greatly improving the hand by hitting the inside straight; the same 16/47 chance of getting a pair of some kind (but not a pair of queens), and a 11/47 chance of getting a high card of queen or better. The difference in actions is because under `draw_win_P`, a queen high is much less likely to win, so it is worth sacrificing the queen for a chance at a straight.\n",
"\n",
"Now I will define a new handmaker that uses these probabilities, and I will regenerate the stats chart (note that the `@lru_cache` dedcorator on `estimated_type_frequency` means that I won't have to wait another five minutes)."
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Type of Hand draw2 deal draw joker texas omaha threeD\n",
"--------------- -------- -------- -------- -------- -------- -------- --------\n",
"five of a kind 0.0000% 0.0000% 0.0000% 0.0070% 0.0000% 0.0000% 0.0000%\n",
"straight flush 0.0050% 0.0000% 0.0050% 0.0190% 0.0410% 0.0990% 0.1790%\n",
"four of a kind 0.0770% 0.0300% 0.0600% 0.2840% 0.1930% 0.4540% 1.5450%\n",
"full house 0.7080% 0.1490% 0.6540% 0.3300% 2.5750% 6.3800% 9.7730%\n",
"flush 0.7820% 0.1970% 0.7830% 0.3230% 2.9890% 6.7390% 7.5840%\n",
"straight 1.3670% 0.3980% 1.2720% 1.0650% 4.5740% 11.2920% 18.6330%\n",
"three of a kind 3.6240% 2.1880% 3.7060% 7.4280% 4.8560% 8.8300% 25.9350%\n",
"two pair 9.5970% 4.7220% 9.6350% 3.8690% 23.6260% 36.7720% 28.3140%\n",
"one pair 47.9090% 42.1940% 48.0430% 45.5100% 43.8630% 26.4810% 8.0260%\n",
"high card 35.9310% 50.1220% 35.8420% 41.1650% 17.2830% 2.9530% 0.0110%\n"
]
}
],
"source": [
"def draw2_handmaker() -> Hand: return draw_handmaker(P=draw_win_P)\n",
"\n",
"stats((draw2_handmaker, *handmakers))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"To be truly accurate, we should repeat this process of using updated probabilities until we hit a fixpoint. But we can see that there is not that much difference between the `draw` and the `draw2` columns, so I'm not going to bother with that.\n",
"\n",
"Below I compare the two win probabilities for the test hands, `deal_win_P` on the left and `draw_win_P` on the right. We can see that a three-of-a-kind or better is very likely to win under either condition, but that a pair of 2s, which has a 53% chance of winning on the deal, only has a 39% chance after the draw.\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"As Ac Ah Ad Ad 100.00000% 100.00000% five of a kind\n",
"Kh Kd Ks Kc Kh 100.00000% 100.00000% five of a kind\n",
"3h 3s 3d 3c 3c 100.00000% 100.00000% five of a kind\n",
"2s 2c 2d 2h 2h 100.00000% 100.00000% five of a kind\n",
"As Ks Qs Ts Js 100.00000% 100.00000% straight flush\n",
"Kc Qc Jc Tc 9c 99.99988% 99.99962% straight flush\n",
"6d 5d 4d 3d 2d 99.99905% 99.99692% straight flush\n",
"5h 4h 3h 2h Ah 99.99893% 99.99654% straight flush\n",
"As Ac Ad Ah 2s 99.99846% 99.99500% four of a kind\n",
"7s 7c 7d 2d 7h 99.98553% 99.96269% four of a kind\n",
"6s 6c 6d 6h 9s 99.98369% 99.95808% four of a kind\n",
"As 5h 5c 5d 5s 99.98184% 99.95346% four of a kind\n",
"Th Tc Td 5h 5c 99.93013% 99.73377% full house\n",
"9h 9c 9d 8c 8h 99.91904% 99.68346% full house\n",
"6h 6c 6d Tc Th 99.88580% 99.53254% full house\n",
"5c 5d 5s As Ah 99.87472% 99.48223% full house\n",
"As 2s 3s 4s 6s 99.83039% 99.28100% flush\n",
"Kc Qc Jc Tc 2c 99.81528% 99.22077% flush\n",
"Qc Jc Tc 9c 7c 99.80016% 99.16054% flush\n",
"4h 5h 6h 7h 9h 99.75480% 98.97985% flush\n",
"As Kd Qc Td Jh 99.63385% 98.49800% straight\n",
"Kc Qh Jd Th 9c 99.60366% 98.40015% straight\n",
"6c 5d 4h 3s 2s 99.39234% 97.71523% straight\n",
"As 2d 3c 4h 5s 99.36215% 97.61738% straight\n",
"As Ac Ad 2h 3h 99.24139% 97.22600% three of a kind\n",
"Ts Tc Th 9s 8c 98.59128% 96.08569% three of a kind\n",
"Ts Tc Th 9s 7c 98.59128% 96.08569% three of a kind\n",
"9h 9s 9d Ah Kh 98.42876% 95.80062% three of a kind\n",
"Ts Tc 5s 5c 8h 95.66580% 90.55538% two pair\n",
"Ts Tc 5s 5c 7h 95.66580% 90.55538% two pair\n",
"9s 9c 8s 8c As 95.30012% 89.81423% two pair\n",
"3s 3c 2s 2d Ah 93.10601% 85.36731% two pair\n",
"As Ac 4c 5s 6s 92.37464% 83.88500% one pair\n",
"4s 4c As Ks Qs 59.86933% 46.92885% one pair\n",
"4h 4d Kh Qd Jd 59.86933% 46.92885% one pair\n",
"2d 2c Ad Kd Qd 53.36827% 39.53762% one pair\n",
"Ah 3s 4s 5s 6s 50.11774% 35.84200% high card\n",
"Kh Qh Jh Th 8d 46.26253% 33.08492% high card\n",
"7d 2s 4s 5s 6s 23.13126% 16.54246% high card\n",
"7h 6s 5d 3s 2d 23.13126% 16.54246% high card\n"
]
}
],
"source": [
"for h in hands:\n",
" p1, p2 = win_probability(h, P=deal_win_P), win_probability(h, P=draw_win_P)\n",
" print(f'{join(h)} {p1:10.5%} {p2:10.5%} {type_name(h)}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"______\n",
"\n",
"# What Comes First?\n",
"\n",
"Bram Cohen suggests an interesting experiment: shuffle a deck and flip over cards one at a time, until either a flush or a straight appears among the face-up cards. Among five-card hands, a straight is more likely, so shouldn't it come up first more often? Let's create a simulation to see:"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"def flush_or_straight_first(deck=deck) -> str:\n",
" \"\"\"Deal cards randomly until a straight or flush show up among any of the cards.\"\"\"\n",
" random.shuffle(deck)\n",
" suits = Counter() # Count how many we have of each suit\n",
" rankset = set() # Set of all the ranks of the cards so far\n",
" first = '' # What came first?\n",
" for card in deck:\n",
" suits[suit(card)] += 1\n",
" rankset.add(rank(card))\n",
" if is_straight(rankset): first += 'straight'\n",
" if 5 in suits.values(): first += 'flush'\n",
" if first: \n",
" return first\n",
" \n",
"def is_straight(rankset) -> bool:\n",
" \"\"\"See if any possible straight is a subset of the rankset.\"\"\"\n",
" return any(straight.issubset(rankset) for straight in straights)\n",
"\n",
"straights = [set(range(start, start + 5)) for start in range(2, 11)] + [{14, 2, 3, 4, 5}]"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'flush'"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flush_or_straight_first()"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'flush'"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"flush_or_straight_first()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Counter({'flush': 5191, 'straight': 3809, 'straightflush': 1000})"
]
},
"execution_count": 54,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Counter(flush_or_straight_first() for _ in range(10**4))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We know that a straight is a more probable hand than a flush in general, but\n",
"counterintuitively, a flush is more likely to come up first, by about 50% to 40%, with about 10% of the time both of them coming up on the same card (a straight flush). One explanation for this is the [pigeonhole principle](https://en.wikipedia.org/wiki/Pigeonhole_principle): there are only four suits (pigeonholes), each of which can only fit four cards (pigeons) before we get a flush. So that means, in the worst case, the first 16 cards fill all the holes, and the 17th card **must** make a flush. But for a straight, it is possible to go up to 44 cards without making any straight (every straight must contain either a 5 or a 10; so you could deal the other 11 ranks in all four suits and not have a straight).\n",
" \n",
"We can extend Bram's experiment to all the types. The function `what_first` simulates a single pass through the deck, flipping up cards until every type has appeared, and returning as a result a dict of `{type_number: number_of_cards_to_make_that_type}`. We'll leave out type 0, \"high card\", because the very first card always makes a high card."
]
},
{
"cell_type": "code",
"execution_count": 55,
"metadata": {},
"outputs": [],
"source": [
"def what_first(deck=deck) -> list:\n",
" \"\"\"Flip cards; record how many cards it took for each type.\"\"\"\n",
" random.shuffle(deck)\n",
" suits = Counter() # Count how many we have of each suit\n",
" ranks = Counter() # Count how many we have of each rank\n",
" rankset = set() # Set of all the ranks of the cards so far\n",
" ranksets = {s: set() for s in 'shdc'} # As above, but per suit\n",
" numbers = {} # The number of cards required to make each type\n",
" kind = lambda n: sum(ranks[r] >= n for r in ranks)\n",
" def record(type, i): \n",
" if type not in numbers: numbers[type] = i\n",
" for i, card in enumerate(deck, 1):\n",
" suits[suit(card)] += 1\n",
" ranks[rank(card)] += 1\n",
" rankset |= {rank(card)}\n",
" ranksets[suit(card)] |= {rank(card)}\n",
" if 8 not in numbers and any(is_straight(ranksets[suit]) for suit in 'sdhc'): \n",
" record(8, i) # straight flush\n",
" if kind(4): record(7, i) # four of a kind \n",
" if kind(3) and kind(2) >= 2: record(6, i) # full house\n",
" if 5 in suits.values(): record(5, i) # flush\n",
" if 4 not in numbers and is_straight(rankset): \n",
" record(4, i) # straight\n",
" if kind(3): record(3, i) # three of a kind\n",
" if kind(2) == 2: record(2, i) # two pair\n",
" if kind(2): record(1, i) # one pair\n",
" if len(numbers) == 8:\n",
" return numbers"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"A sample run:"
]
},
{
"cell_type": "code",
"execution_count": 56,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{1: 7, 2: 9, 6: 11, 3: 11, 4: 12, 5: 15, 7: 23, 8: 30}"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"what_first()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"I will define `what_firsts` to run `n` simulations and return a dict keyed by type number, where each value is a Counter of the card numbers where the type first appeared across all the simulations. "
]
},
{
"cell_type": "code",
"execution_count": 57,
"metadata": {},
"outputs": [],
"source": [
"def what_firsts(n) -> dict:\n",
" \"\"\"Run what_first() n times and record numbers of cards as Counters:\n",
" returns dict of {type_number: Counter(how_many_cards: how_often})}\"\"\"\n",
" counters = {type: Counter() for type in types}\n",
" for trial in range(n):\n",
" numbers = what_first()\n",
" for type in numbers:\n",
" counters[type][numbers[type]] += 1\n",
" return counters "
]
},
{
"cell_type": "code",
"execution_count": 58,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{0: Counter(),\n",
" 1: Counter({5: 1, 8: 1, 10: 1, 9: 2, 6: 2, 2: 1, 7: 1, 3: 1}),\n",
" 2: Counter({10: 4, 11: 2, 7: 1, 8: 2, 4: 1}),\n",
" 3: Counter({13: 1, 15: 3, 11: 1, 14: 3, 17: 1, 9: 1}),\n",
" 4: Counter({9: 2, 14: 1, 17: 2, 13: 1, 19: 1, 10: 2, 16: 1}),\n",
" 5: Counter({12: 2, 9: 1, 8: 1, 13: 1, 10: 1, 11: 3, 16: 1}),\n",
" 6: Counter({13: 1, 15: 3, 11: 1, 14: 3, 17: 1, 9: 1}),\n",
" 7: Counter({31: 2, 25: 1, 34: 1, 12: 1, 21: 1, 20: 1, 19: 1, 26: 1, 27: 1}),\n",
" 8: Counter({22: 1, 14: 1, 20: 2, 36: 1, 28: 1, 33: 1, 23: 1, 25: 1, 34: 1}),\n",
" 9: Counter()}"
]
},
"execution_count": 58,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"what_firsts(10) # Run 10 simulations"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We see that type 1 (one pair) has a Counter with mostly low numbers—a pair tends to show up early. Type 8 (straight flush) has a Counter with mostly high numbers; it takes a lot of cards before you are likely to get a straight flush. \n",
"\n",
"Let's run 100,000 simulations:"
]
},
{
"cell_type": "code",
"execution_count": 59,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"CPU times: user 36.2 s, sys: 12.8 ms, total: 36.3 s\n",
"Wall time: 36.3 s\n"
]
}
],
"source": [
"%time counters = what_firsts(10**5)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The raw numbers are messy to look at, so I'll plot them, showing for each type the distribution of how many cards it took, and in the legend showing the mean number of cards for each type:"
]
},
{
"cell_type": "code",
"execution_count": 60,
"metadata": {},
"outputs": [],
"source": [
"def plot_what_firsts(counters, types=range(1, 9), \n",
" colors='w b g r c m y k orange'.split()):\n",
" N = sum(counters[min(types)].values()) # How many trials\n",
" M = max(L for c in counters.values() for L in c) # Longest trial\n",
" X = range(1, M + 1) # Numbers to plot\n",
" plt.figure(figsize=(10, 6))\n",
" plt.xlabel('Number of cards needed')\n",
" plt.ylabel(f'Percent (out of {N:,d} trials)')\n",
" plt.grid(True, which='major'); \n",
" plt.grid(True, which='minor', linestyle=':', alpha=0.5, markevery=1)\n",
" plt.minorticks_on()\n",
" for type in reversed(types):\n",
" Y = [100 * counters[type][x]/ N for x in X]\n",
" μ = sum(L * n for L, n in counters[type].items()) / N\n",
" plt.plot(X, Y, 'o:', lw=2, alpha=0.8, color=colors[type],\n",
" label=f'{type}: μ={μ:4.1f} {type_names[type]}')\n",
" plt.legend()\n",
" plt.show()"
]
},
{
"cell_type": "code",
"execution_count": 61,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"