-
Notifications
You must be signed in to change notification settings - Fork 0
/
bridge_hands.py
33 lines (27 loc) · 840 Bytes
/
bridge_hands.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import random
import sys
import operator
from collections import Counter
def trial(nbTimes):
stat = Counter()
deck = list(range(52))
for i in range(nbTimes):
shuffled = random.sample(deck, len(deck))
typeHand = nbCardsPerSuit(shuffled[:13])
stat[typeHand] += 1
typeHand = nbCardsPerSuit(shuffled[13:26])
stat[typeHand] += 1
typeHand = nbCardsPerSuit(shuffled[26:39])
stat[typeHand] += 1
typeHand = nbCardsPerSuit(shuffled[39:52])
stat[typeHand] += 1
return stat
def nbCardsPerSuit(hand):
res = [0, 0, 0, 0]
for val in hand:
res[val % 4] += 1
return tuple(sorted(res, reverse=True))
if __name__ == "__main__":
n = int(sys.argv[1])
res = trial(n)
print(sorted(res.items(), key=operator.itemgetter(1), reverse=True))