In Pinochle, what is the probability of a thousand aces and a double run in one hand?

What are the odds of getting a hand containing: A♣ A♦ A♥ A♠ A♣ A♦ A♥ A♠ Tx Kx Qx Jx Tx Kx Qx Jx for some suit x, and another four unspecified cards.

Rules Background

Double-deck Pinochle is a four player game using a deck of 80 cards (four lots of ATKQJ in each of ♣♦♥♠) (cf. Wikipedia and this rules page).

A double run is two sets ATKQJ in whichever suit is declared trumps. Trumps is decided by a bidding mechanism, but for this question we'll assume that the bidding was won by the player in question, and trumps were chosen to match the hand. Consequently we're interested in the chance of being dealt two sets of ATKQJ both in the same suit.

"A thousand aces" is a term from standard (single-deck) Pinochle, and refers to two "rounds" of aces (i.e. A♣ A♦ A♥ A♠ x 2). In standard Pinochle this is all of the aces in the deck and is worth 1000 points. In double-deck Pinochle this is only half the aces, so is much more common and is only worth 100 points.

Melds in Pinochle are allowed to reuse cards (as long as they are different types of melds), and so the aces for the runs can be reused for the double run. Consequently the required cards for the hand are A♣ A♦ A♥ A♠ A♣ A♦ A♥ A♠ Tx Kx Qx Jx Tx Kx Qx Jx for some suit x, which leaves four cards unspecified.

• What do you mean by getting a thousand aces? – Joe W Jun 16 '19 at 21:05
• In pinochle "1000 aces" or "aces abound" is a meld containing all 8 aces. – KMR Jun 16 '19 at 23:13
• It would help you could edit in the exact hand or if someone with more knowledge could edit in exactly what a thousand aces and a double run means. With proper information someone with no knowledge of the game could provide the answer as long as they know what is in the hand and deck – Joe W Jun 17 '19 at 1:31
• The problem here is double deck pinochle is dealt exhaustively, and commonly played with 2-8 players, with some games including passing cards to a partner, so there's a lot of variation on the probability. – KMR Jun 17 '19 at 5:18
• As KMR and JoeW indicate: please fill in the details of the set-up you wish to have analyzed: deck composition, number of cards dealt, composition of a hand that you're counting, and explicit disallowance for human decision making in the process (e.g., passing cards). – L. Scott Johnson Jun 17 '19 at 11:45

TLDR: This will happen roughly once every 1.7 million hands.

Rules Background

Double-deck Pinochle is a four player game using a deck of 80 cards (four lots of `ATKQJ` in each of `♣♦♥♠`) (cf. Wikipedia and this rules page).

A double run is two sets `ATKQJ` in whichever suit is declared trumps. Trumps is decided by a bidding mechanism, but for this answer we'll assume that the bidding was won by the player in question, and trumps were chosen to match the hand. Consequently we're interested in the chance of being dealt two sets of `ATKQJ` both in the same suit.

"A thousand aces" is a term from standard (single-deck) Pinochle, and refers to two "arounds" of aces (i.e. `A♣ A♦ A♥ A♠` x 2). In standard Pinochle this is all of the aces in the deck and is worth 1000 points. In double-deck Pinochle this is only half the aces, so is much more common and is only worth 100 points.

Melds in Pinochle are allowed to reuse cards (as long as they are different types of melds), and so the aces for the runs can be reused in the arounds. Consequently the required cards for the hand are `A♣ A♦ A♥ A♠ A♣ A♦ A♥ A♠ Tx Kx Qx Jx Tx Kx Qx Jx` for some suit `x`, which leaves four cards unspecified.

Simulation

The calculation of this seemed quite involved (although see L. Scott Johnson's full calculation), so I wrote a Python script to estimate the probability:

``````import random
from multiprocessing.dummy import Pool as ThreadPool

suits='CDHS'
ranks='ATKQJ'
cards = [r+s for s in suits for r in ranks] * 4

def simulate(_):
matches = 0
for i in range(innerLoops):
hand = random.sample(cards, 20)
if hand.count('AC') >= 2 and hand.count('AD') >= 2 and hand.count('AH') >= 2 and hand.count('AS') >= 2:
for s in suits:
if hand.count('T'+s) >= 2 and hand.count('K'+s) >= 2 and hand.count('Q'+s) >= 2 and hand.count('J'+s) >= 2:
matches += 1
break
return matches

poolSize = 8
loops = 100000000
innerLoops = loops / poolSize
for j in range(5):
results = pool.map(simulate, range(poolSize))
print('{} / {}'.format(sum(results), loops))
``````

When I ran this the output was:

``````58 / 100000000
65 / 100000000
61 / 100000000
57 / 100000000
54 / 100000000
``````

Combining these results gives an average of about 295 times in five hundred million hands, or 1/1694915. This result supports the full calculation by L. Scott Johnson.

• Typo: you verify hand.count('AD') twice and don't check for AH. The actual odds are much smaller, therefore. When I run your code with the typo corrected, I get around 51-69 / 100,000,000. I'll post the the true calculation shortly.... – L. Scott Johnson Jul 1 '19 at 17:58
• @L.ScottJohnson Thank you for spotting this! I have corrected the typo and results. This also lead me to learn a little about multithreading in python - thank you! – tttppp Jul 3 '19 at 6:18

TL;DR: The odds are 1 in 1,733,866

To compute:

First calculate how many ways you can select a "winning hand":

Winning configuration count for your choice of suit x:

Each digit in the configuration represents either

1. the number of aces of a suit, without regard to a specific suit

or

1. the number of TJQK in suit X, without regard to a specific rank:

CASE 1

You might do it exactly (with no extra aces or extra cards of suit x):

8 aces: 2222 and 8 suit-X-non-aces (SXNA): 2222 with four other cards (neither Aces nor of suit X -- I'll call these "Off" cards): 4 I'll write this as case 1:

``````1) 2222 2222 4
``````

There are C(4,2) ways of choosing each Ace and each SXNA. With four choices of X. And there are C(48,4) ways of choosing the other four cards

C(4,2)^8 * 4 * C(48,4) = 1,307,278,725,120 ways of drawing such a hand.

There are C(80,20) different hands, so dividing shows us a 1 in 2,704,332 chance of getting that kind of hand.

Other cases

The tricky part comes in factoring in the other ways to get it: drawing some of the extra aces and/or the extra SXNAs

Let's say you only draw 3 "Off" cards: getting an extra ace or an extra SXNA. There are two configurations to do this (cases 2 and 3):

``````2) 2223 2222 3
3) 2222 2223 3
``````

And these configurations have a count (you have to choose which suit the extra Ace is in, or which rank the extra SXNA is)

The 2223 part has a count of C(4,1) = 4. This 4 representz the ways to select the order (if the columns corresponded to distinct suits/ranks): 2223, 2232, 2322, or 3222

The 2222 part still has a count of just one, but we can write that as C(4,4), meaning we're choosing four of the suits to be 2 (or four of the ranks in the case of SXNA).

So to make the counts explicit:

``````1) C(4,4)*C(4,4) -- choosing Aces 2s then SXNAs 2s
2) C(4,3)*C(1,1) * C(4,4) -- choosing Aces 2s then Aces 3s then SXNAs 2s
3) C(4,4) * C(4,3)*C(3,3) -- choosing Aces 2s then SXNAs 2s then SXNAs 3s
``````

Continuing with having 2 "off" cards (and two extra Aces and/or SXNAs:

``````4) 2222 2224 2
5) 2222 2233 2
6) 2223 2223 2
7) 2224 2222 2
8) 2233 2222 2
``````

And so on, making the whole table of configurations:

`````` 1) 2222 2222 4

2) 2222 2223 3
3) 2223 2222 3

4) 2222 2224 2
5) 2222 2233 2
6) 2223 2223 2
7) 2224 2222 2
8) 2233 2222 2

9) 2222 2234 1
10) 2222 2333 1
11) 2223 2224 1
12) 2223 2233 1
13) 2224 2223 1
14) 2233 2223 1
15) 2234 2222 1
16) 2333 2222 1

17) 2222 2244 0
18) 2222 2334 0
19) 2222 3333 0
20) 2223 2234 0
21) 2223 2333 0
22) 2224 2224 0
23) 2224 2233 0
24) 2233 2224 0
25) 2233 2233 0
26) 2234 2223 0
27) 2333 2223 0
28) 2244 2222 0
29) 2334 2222 0
30) 3333 2222 0
``````

The count of each configuration is:

`````` 1) 2222 2222 4 C(4,4) * C(4,4)
2) 2222 2223 3 C(4,4) * C(4,3)*C(1,1)
3) 2223 2222 3 C(4,3)*C(1,1) * C(4,4)
4) 2222 2224 2 C(4,4) * C(4,3)*C(1,1)
5) 2222 2233 2 C(4,4) * C(4,2)*C(2,2)
6) 2223 2223 2 C(4,3)*C(1,1) * C(4,3)*C(1,1)
7) 2224 2222 2 C(4,3)*C(1,1) * C(4,4)
8) 2233 2222 2 C(4,2)*C(2,2) * C(4,4)
9) 2222 2234 1 C(4,4) * C(4,2)*C(2,1)*C(1,1)
10) 2222 2333 1 C(4,4) * C(4,1)*C(3,3)
11) 2223 2224 1 C(4,3)*C(1,1) * C(4,3)*C(1,1)
12) 2223 2233 1 C(4,3)*C(1,1) * C(4,2)*C(2,2)
13) 2224 2223 1 C(4,3)*C(1,1) * C(4,3)*C(1,1)
14) 2233 2223 1 C(4,2)*C(2,2) * C(4,3)*C(1,1)
15) 2234 2222 1 C(4,2)*C(2,1)*C(1,1) * C(4,4)
16) 2333 2222 1 C(4,1)*C(3,3) * C(4,4)
17) 2222 2244 0 C(4,4) * C(4,2)*C(2,2)
18) 2222 2334 0 C(4,4) * C(4,1)*C(3,2)*C(1,1)
19) 2222 3333 0 C(4,4) * C(4,4)
20) 2223 2234 0 C(4,3)*C(1,1) * C(4,2)*C(2,1)*C(1,1)
21) 2223 2333 0 C(4,3)*C(1,1) * C(4,1)*C(3,3)
22) 2224 2224 0 C(4,3)*C(1,1) * C(4,3)*C(1,1)
23) 2224 2233 0 C(4,3)*C(1,1) * C(4,2)*C(2,2)
24) 2233 2224 0 C(4,2)*C(2,2) * C(4,3)*C(1,1)
25) 2233 2233 0 C(4,2)*C(2,2) * C(4,2)*C(2,2)
26) 2234 2223 0 C(4,2)*C(2,1)*C(1,1) * C(4,3)*C(1,1)
27) 2333 2223 0 C(4,1)*C(3,3) * C(4,3)*C(1,1)
28) 2244 2222 0 C(4,2)*C(2,2) * C(4,4)
29) 2334 2222 0 C(4,1)*C(3,2)*C(1,1) * C(4,4)
30) 3333 2222 0 C(4,4) * C(4,4)
``````

And finally we have to factor in the group count: how many ways can we select the N aces or a given suit from the 4 available? For 2222, the count is C(4,2)^4 : choose 2 of the 4 available aces for each suit. for the Aces and the SXNAs, there are four cards available for each column (four suits or four ranks). For the Off column, there are 48 available cards (four copies of four non-ace ranks in three suits).

``````1) 2222 2222 4 C(4,2)^8*C(48,4)
2) 2222 2223 3 C(4,2)^7*C(4,3)*C(48,3)
3) 2223 2222 3 C(4,2)^7*C(4,3)*C(48,3)
4) 2222 2224 2 C(4,2)^7*C(4,4)*C(48,2)
5) 2222 2233 2 C(4,2)^6*C(4,3)^2*C(48,2)
6) 2223 2223 2 C(4,2)^6*C(4,3)^2*C(48,2)
7) 2224 2222 2 C(4,2)^7*C(4,4)*C(48,2)
8) 2233 2222 2 C(4,2)^6*C(4,3)^2*C(48,2)
9) 2222 2234 1 C(4,2)^6*C(4,3)*C(4,4)*C(48,1)
10) 2222 2333 1 C(4,2)^5*C(4,3)^3*C(48,1)
11) 2223 2224 1 C(4,2)^6*C(4,3)*C(4,4)*C(48,1)
12) 2223 2233 1 C(4,2)^5*C(4,3)^3*C(48,1)
13) 2224 2223 1 C(4,2)^6*C(4,3)*C(4,4)*C(48,1)
14) 2233 2223 1 C(4,2)^5*C(4,3)^3*C(48,1)
15) 2234 2222 1 C(4,2)^6*C(4,3)*C(4,4)*C(48,1)
16) 2333 2222 1 C(4,2)^5*C(4,3)^3*C(48,1)
17) 2222 2244 0 C(4,2)^6*C(4,4)^2
18) 2222 2334 0 C(4,2)^5*C(4,3)^2*C(4,4)
19) 2222 3333 0 C(4,2)^4*C(4,3)^4
20) 2223 2234 0 C(4,2)^5*C(4,3)^2*C(4,4)
21) 2223 2333 0 C(4,2)^4*C(4,3)^4
22) 2224 2224 0 C(4,2)^6*C(4,4)^2
23) 2224 2233 0 C(4,2)^5*C(4,3)^2*C(4,4)
24) 2233 2224 0 C(4,2)^5*C(4,3)^2*C(4,4)
25) 2233 2233 0 C(4,2)^4*C(4,3)^4
26) 2234 2223 0 C(4,2)^5*C(4,3)^2*C(4,4)
27) 2333 2223 0 C(4,2)^4*C(4,3)^4
28) 2244 2222 0 C(4,2)^6*C(4,4)^2
29) 2334 2222 0 C(4,2)^5*C(4,3)^2*C(4,4)
30) 3333 2222 0 C(4,2)^4*C(4,3)^4
``````

To find the number of each case, just multiply 4 (the number of choices of suit X) by the configuration count and the group count:

``````1) 2222 2222 4 -- 1,307,278,725,120
2) 2222 2223 3 -- 309,873,475,584
3) 2223 2222 3 -- 309,873,475,584
4) 2222 2224 2 -- 5,052,284,928
5) 2222 2233 2 -- 20,209,139,712
6) 2223 2223 2 -- 53,891,039,232
7) 2224 2222 2 -- 5,052,284,928
8) 2233 2222 2 -- 20,209,139,712
9) 2222 2234 1 -- 429,981,696
10) 2222 2333 1 -- 382,205,952
11) 2223 2224 1 -- 573,308,928
12) 2223 2233 1 -- 2,293,235,712
13) 2224 2223 1 -- 573,308,928
14) 2233 2223 1 -- 2,293,235,712
15) 2234 2222 1 -- 429,981,696
16) 2333 2222 1 -- 382,205,952
17) 2222 2244 0 -- 1,119,744
18) 2222 2334 0 -- 5,971,968
19) 2222 3333 0 -- 1,327,104
20) 2223 2234 0 -- 23,887,872
21) 2223 2333 0 -- 21,233,664
22) 2224 2224 0 -- 2,985,984
23) 2224 2233 0 -- 11,943,936
24) 2233 2224 0 -- 11,943,936
25) 2233 2233 0 -- 47,775,744
26) 2234 2223 0 -- 23,887,872
27) 2333 2223 0 -- 21,233,664
28) 2244 2222 0 -- 1,119,744
29) 2334 2222 0 -- 5,971,968
30) 3333 2222 0 -- 1,327,104
``````

For a total of 2,038,978,759,680

Dividing by the number of hands, C(80,20) = 3,535,316,142,212,180,000

We find the odds to be about 1 in 1,733,866

(nb: there's no reason you have to handle the aces distinctly from the SXNAs: there are four of each. So you could reduce the number of cases. They're left distinct here for approachability and transparency.)