All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars
 perplexus dot info

 Perfect Pairs (Posted on 2009-02-11)
Suppose the local casino introduces a card game named "Perfect Pairs". The game involves a player making a bet followed by a dealer dealing out two cards to every player who has made a bet. If the player has a pair, the player wins 11 times his initial bet as well as keeping his initial bet. If the player does not get a pair, the player loses all the money he has bet in that round to the casino.

Additionally, suppose that six full decks of cards are initially shuffled and used and the dealer does not re-shuffle the cards until 5 decks of cards are used up. For the sake of terminology we will call a set of rounds that are played without the cards being shuffled a "match".

If there are n players always playing the game, what is the expected percentage of "matches" that will have at least one round in which a player who has memorized the previous cards dealt in that "match" could calculate that he has an edge over the dealer (ie, expected percentage of matches in which there is at least one round in the match when the chance of making a pair exceeds 1/12)?

 No Solution Yet Submitted by Chris, PhD Rating: 3.0000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
 simulation | Comment 1 of 6

This VB 5 program simulates matches with given numbers of players.

Dim denCt(13), totCards, hit, totHits, tries

Private Sub cmdStart_Click()
For n = 1 To 5
tries = 0: totHits = 0
Do
DoEvents
For i = 1 To 13
denCt(i) = 24
Next
totCards = 52 * 6
hit = 0
Do
For i = 1 To 2 * n
dealCard
Next
If totCards > 52 Then
prob = 0
For i = 1 To 13
prob = prob + denCt(i) * (denCt(i) - 1) / (totCards * (totCards - 1))
Next
If prob > 1 / 11 Then hit = 1
End If
Loop Until totCards <= 52
totHits = totHits + hit
tries = tries + 1
Loop While totHits < 5000
Print Str(totHits) & Str(tries) & Format(totHits / tries, " 0.00000")
Next
End Sub

Randomize
End Sub

Sub dealCard()
DoEvents
rNo = Int(Rnd(1) * totCards + 1)
If rNo > totCards Then rNo = totCards
rns = rNo
i = 1
Do While rNo > denCt(i)
rNo = rNo - denCt(i)
i = i + 1
Loop
denCt(i) = denCt(i) - 1
totCards = totCards - 1
End Sub

Runs with 1 through 5 players found:

`players  needed matches for 5000 hits   for this probability per match   1             381474                        0.01311   2             547593                        0.00913   3             462256                        0.01082   4             632347                        0.00791   5            1142136                        0.00438       `

One would think that the probability would be monotonically decreasing, so the rise for 3 players would be the result of chance.

 Posted by Charlie on 2009-02-11 16:41:28

 Search: Search body:
Forums (0)