Assume a simplified poker deck (to cut down the # of combinations):
- 4 suits (h, c, d, s)
- 5 ranks (A, K, Q, 7, 2)
- 20 cards
Assume a basic 2-player setup:
- Hand 1 (2 cards)
- Hand 2 (2 cards)
- Flop (3 cards)
There are 16,279,200 combinations of the above setup: choose(20, 2) * choose(18, 2) * choose(16, 3).
Take the following combination:
- Hand 1 = Ad, As
- Hand 2 = Kc, Kh
- Flop = Qd, 7s, 2c
Question: what is the most efficient way to calculate the number of combinations (within the 16,279,200) that are suit-isomorphic with this setup?
For example, the following setup is suit-isomorphic:
- Hand 1 = As, Ac
- Hand 2 = Kh, Kd
- Flop = Qs, 7c, 2h
while this example is not:
- Hand 1 = Ad, As
- Hand 2 = Kc, Kh
- Flop = Qc, 7s, 2d
nor is this example:
- Hand 1 = Kc, Kh
- Hand 2 = Ad, As
- Flop = Qd, 7s, 2c
===Edit ... explaining what I mean by suit isomorphism===
The only isomorphic transformation allowed is one that shifts suits, not ranks. The first example failed example isn't "suit" isomorphic because f(d) isn't a one-to-one map: on the Ace in Hand 1, f(d) = d. On the Queen in the flop, f(d) = c. The second example failed because the ranks within Hand 1 and Hand 2 were swapped.
===Edit ... a more general approach to the question===
The solution shouldn't rely on a specific structure of the problem. For example, in the example I gave, the solution is 24 (i.e. the permutations of the 4 suit symbols). But what happens in the following cases.
- I might start eliminating cards. For example, I might pull the 2c out of the deck.
- I might not use all 4 symbols.