In my last live cash-game session, I saw this hand go down (suits aren't relevant, so are omitted):
3 players all-in before the flop. This was a fairly friendly table at the time, so even though it's a cash game, all three turn up their cards.
KK vs ATs vs 77
KK has a big smile as the big favorite. He basically has to dodge two 7s and four As.
Six outs, ~55% to win.
The flop comes with a 7 in the window:
769
So now the guy with the set of 7s is sitting pretty. He has to dodge two Ks and four 8s. ~75% to win.
Turn is an 8:
769 8
Now AT has a straight, and has to dodge a 7, 3 6s, 3 8s, 3 9s for the loss, and 2 Ts for the chop. ~70% to win.
River: a TEN. Everybody gets their money back.
I loved it, because every action of the dealer crushed a different player's hopes of winning the big pot.
Monday, October 22, 2007
Busy
Wow. Haven't had time to update lately, or even play much poker. I've been working on the website for my new a cappella group, the Eclectic Company.
It's a pretty simple site so far, but it's taken me some time to get back up to speed, since I haven't done any real web coding in almost ten years. So, I'm learning all about XHTML and CSS, as well as the Joomla CMS, so I can just worry about content once I get the template all ironed out.
I always enjoy a good intellectual challenge (which is why I love poker), but the load of the new technical learning in addition to learning all the new repertoire (and re-learning repertoire for my other group, since I changed voice parts), has made it a busy time.
OK, for my next post, back to your regularly scheduled poker.
It's a pretty simple site so far, but it's taken me some time to get back up to speed, since I haven't done any real web coding in almost ten years. So, I'm learning all about XHTML and CSS, as well as the Joomla CMS, so I can just worry about content once I get the template all ironed out.
I always enjoy a good intellectual challenge (which is why I love poker), but the load of the new technical learning in addition to learning all the new repertoire (and re-learning repertoire for my other group, since I changed voice parts), has made it a busy time.
OK, for my next post, back to your regularly scheduled poker.
Thursday, August 30, 2007
Statistics and the Game Show
I was thinking about Hoy's post about human intuition and statistics. Since my intuition rejected Hoy's answer as correct (even though I've heard about the problem before), I thought I'd do a little simulation to see what happens.
My first instinct was to run a bunch of trials, and do enough of them to get a statistically significant result. But then I realized the problem-space was small enough to do a full enumeration of the space. Basically, there are three variables, the box the prize is in (p), the box I pick (i), and the box wink picks (w). I will invalidate any point in the problem space that violates the assumptions (Wink won't pick my box to show me, and he won't pick the box the prize is in).
Here's the abbreviated code*:
So, I tried coding it per my original idea. Simulating the choice a number of times, and seeing what average happens. The code:
So, the question is, why does the full enumeration of the problem-space give us the wrong answer?
Let's look at the problem space again, removing the invalid trials:
It turns out the flaw with this method is thinking of it as a problem in 3-dimensional space. It turns out that Wink's choice is completely (or at least mostly) dependent on the combination of where the prize is, and which box we choose. So we change the code to:
Okay, okay, I believe you now. ;-)
* Here's the full code, if you want to mess with it. (After creating "winks_choice", I refactored method 2 to use it.) Save it to "wink.py", and then type "python wink.py" on almost any mac or unix box.
My first instinct was to run a bunch of trials, and do enough of them to get a statistically significant result. But then I realized the problem-space was small enough to do a full enumeration of the space. Basically, there are three variables, the box the prize is in (p), the box I pick (i), and the box wink picks (w). I will invalidate any point in the problem space that violates the assumptions (Wink won't pick my box to show me, and he won't pick the box the prize is in).
Here's the abbreviated code*:
Here are the results:
for p in prize:
for i in i_pick:
for w in wink_picks:
evaluate(p,i,w,True)
Huh. So the simulation agrees with our intuition that there's a 50/50 chance the prize is in either our box or the one that's left. Since Marilyn Vos Savant is sure the remaining box has a 2/3 chance of being the winner, maybe this is why she says folks programming the problem "fared a little less well."
box the prize is in, box I picked, box wink showed
1 1 1 invalid: wink picked my box.
1 1 2 I win!
1 1 3 I win!
1 2 1 invalid: wink picked the winner.
1 2 2 invalid: wink picked my box.
1 2 3 I lose.
1 3 1 invalid: wink picked the winner.
1 3 2 I lose.
1 3 3 invalid: wink picked my box.
2 1 1 invalid: wink picked my box.
2 1 2 invalid: wink picked the winner.
2 1 3 I lose.
2 2 1 I win!
2 2 2 invalid: wink picked my box.
2 2 3 I win!
2 3 1 I lose.
2 3 2 invalid: wink picked the winner.
2 3 3 invalid: wink picked my box.
3 1 1 invalid: wink picked my box.
3 1 2 I lose.
3 1 3 invalid: wink picked the winner.
3 2 1 I lose.
3 2 2 invalid: wink picked my box.
3 2 3 invalid: wink picked the winner.
3 3 1 I win!
3 3 2 I win!
3 3 3 invalid: wink picked my box.
6 wins. 6 losses.
15 invalid. 12 valid. 27 total.
winning percentage: 0.5
losing percentage: 0.5
So, I tried coding it per my original idea. Simulating the choice a number of times, and seeing what average happens. The code:
And the results:
while total_trials < number_of_trials:
choices = list([1,2,3])
p = random.choice(choices)
i = random.choice(choices)
choices.remove(i) # make sure wink doesn't pick my box
if p in choices:
choices.remove(p) # make sure wink doesn't pick the box with the prize
w = random.choice(choices)
evaluate(p,i,w)
Even before running the simulation above, it became obvious to me that the answer was going to be 1/3 wins for keeping the same box. In the code, none of the manipulations involving the other boxes ever changed anything relating to the original box.
by method 2, 1000 trials:
337 wins. 663 losses.
0 invalid. 1000 valid. 1000 total.
winning percentage: 0.337
losing percentage: 0.663
So, the question is, why does the full enumeration of the problem-space give us the wrong answer?
Let's look at the problem space again, removing the invalid trials:
I've colored the wins to show how they pair up. This is an artifact of there being 2 non-winning boxes for Wink to pick when I've picked the winning box. Since he'll only ever pick one of them, we can collapse these into just 3 winning trials versus the 6 losing trials, giving us the correct 1/3 chance of winning with "our" box.
box the prize is in, box I picked, box wink showed
1 1 2 I win!
1 1 3 I win!
1 2 3 I lose.
1 3 2 I lose.
2 1 3 I lose.
2 2 1 I win!
2 2 3 I win!
2 3 1 I lose.
3 1 2 I lose.
3 2 1 I lose.
3 3 1 I win!
3 3 2 I win!
It turns out the flaw with this method is thinking of it as a problem in 3-dimensional space. It turns out that Wink's choice is completely (or at least mostly) dependent on the combination of where the prize is, and which box we choose. So we change the code to:
Giving us the correct result:
def winks_choice(p,i):
choices = list([1,2,3])
choices.remove(i) # make sure wink doesn't pick my box
if p in choices:
choices.remove(p) # make sure wink doesn't pick the box with the prize
return random.choice(choices)
for p in prize:
for i in i_pick:
w = winks_choice(p,i)
evaluate(p,i,w,True)
box the prize is in, box I picked, box wink showed
1 1 2 I win!
1 2 3 I lose.
1 3 2 I lose.
2 1 3 I lose.
2 2 3 I win!
2 3 1 I lose.
3 1 2 I lose.
3 2 1 I lose.
3 3 2 I win!
3 wins. 6 losses.
0 invalid. 9 valid. 9 total.
winning percentage: 0.333333333333
losing percentage: 0.666666666667
Okay, okay, I believe you now. ;-)
* Here's the full code, if you want to mess with it. (After creating "winks_choice", I refactored method 2 to use it.) Save it to "wink.py", and then type "python wink.py" on almost any mac or unix box.
import random
#
# routines
#
def clear_counters():
global i_win , i_lose , total_valid , total_invalid , total_trials
i_win = 0
i_lose = 0
total_valid = 0
total_invalid = 0
total_trials = 0
def evaluate(p,i,w,print_it=False):
global i_win , i_lose , total_valid , total_invalid , total_trials
if print_it:
print p,i,w,
if w == i:
if print_it:
print "invalid: wink picked my box."
total_invalid += 1
total_trials += 1
return
if w == p:
if print_it:
print "invalid: wink picked the winner."
total_invalid += 1
total_trials += 1
return
if p == i:
if print_it:
print "I win!"
i_win += 1
else:
if print_it:
print "I lose."
i_lose += 1
total_valid += 1
total_trials += 1
def print_results():
print i_win, "wins.", i_lose, "losses."
print total_invalid, "invalid.", total_valid, "valid.", total_trials, "total."
print "winning percentage:", float(i_win) / total_valid
print "losing percentage:", float(i_lose) / total_valid
def winks_choice(p,i):
choices = list([1,2,3])
choices.remove(i)
if p in choices:
choices.remove(p)
return random.choice(choices)
#
# method 1: iteration over the full problem space
#
clear_counters()
prize = [1,2,3]
i_pick = [1,2,3]
wink_picks = [1,2,3]
print "box the prize is in, box I picked, box wink showed"
for p in prize:
for i in i_pick:
for w in wink_picks:
evaluate(p,i,w,True)
print_results()
#
# method 2: tabulate independent trials
#
number_of_trials = 1000
print "by method 2,", number_of_trials, "trials:"
clear_counters()
while total_trials < number_of_trials:
choices = list([1,2,3])
p = random.choice(choices)
i = random.choice(choices)
w = winks_choice(p,i)
evaluate(p,i,w)
print_results()
#
# method 3: iteration over the problem space in *2* dimensions!
#
clear_counters()
print "Method 3. 2-dimensional problem-space."
print "box the prize is in, box I picked, box wink showed"
for p in prize:
for i in i_pick:
w = winks_choice(p,i)
evaluate(p,i,w,True)
print_results()
Monday, August 20, 2007
Snowman Tatermitts
I'm not sure why, but ever since I first heard about Snowman Taterlegs, I've been enamored of the term. It's just a strange juxtaposition of words that I imagine rolls right off the tounge. (I haven't had a chance to use it in any of my live games yet.)
Thanks to the power of Tivo, I don't watch many commercials, but happened to have my head in email while half-watching something when this came on:
It's basically a pair of kitchen gloves with coarse-grit sandpaper built-in to the palms/fingers.
The commercial sucked me in to actually watching, and I had to rewind, because it made me laugh out loud. They had 4 demonstrations of the product "in use", and 3 of them either made the product look bad, or were obviously rigged.
1 - Potato ("in only 8 seconds!") - This potato has obviously been boiled to within an inch of its life. (The instructions apparently state that you must boil the potato first, but it never says so in the commercial. Looks like it works OK, with no obvious doctoring.
2 - Carrot ("works great on other vegetables, too!") - looks like it works OK, but the carrot sawdust is clogging up the sandpaper on the gloves somethin' fierce. Looks like they'd be a bitch to clean.
3 - Apple - This is the one that first got my attention, because they use "time lapse" footage to show the before and after. The after shot has a very clear circle around the stem which makes it completely obvious that the apple has been peeled using a knife.
4 - Sweet Potato ("you can even peel sweet potatoes in a flash, too!") - This is the one that made me laugh. You can see that they're dropping "peelings" out of the gloves as they wave them around the pre-peeled yam under a stream of water.
The spooky thing is, their number has Snowman Taterlegs right in there.
1-800-453-3300.
Call now!
Thanks to the power of Tivo, I don't watch many commercials, but happened to have my head in email while half-watching something when this came on:
Peeling potatoes can take forever! Oh No! Not with a knife, that's dangerous! Now there's a better way! Introducing: Tater Mitts!
It's basically a pair of kitchen gloves with coarse-grit sandpaper built-in to the palms/fingers.
The commercial sucked me in to actually watching, and I had to rewind, because it made me laugh out loud. They had 4 demonstrations of the product "in use", and 3 of them either made the product look bad, or were obviously rigged.
1 - Potato ("in only 8 seconds!") - This potato has obviously been boiled to within an inch of its life. (The instructions apparently state that you must boil the potato first, but it never says so in the commercial. Looks like it works OK, with no obvious doctoring.
2 - Carrot ("works great on other vegetables, too!") - looks like it works OK, but the carrot sawdust is clogging up the sandpaper on the gloves somethin' fierce. Looks like they'd be a bitch to clean.
3 - Apple - This is the one that first got my attention, because they use "time lapse" footage to show the before and after. The after shot has a very clear circle around the stem which makes it completely obvious that the apple has been peeled using a knife.
4 - Sweet Potato ("you can even peel sweet potatoes in a flash, too!") - This is the one that made me laugh. You can see that they're dropping "peelings" out of the gloves as they wave them around the pre-peeled yam under a stream of water.
The spooky thing is, their number has Snowman Taterlegs right in there.
1-800-453-3300.
Call now!
Thursday, August 16, 2007
Over!
I hereby declare my losing streak to be over. My February and March were really bad (down 1k and 1.5k, respectively which is bad at my bankroll level), and I decided to stop playing online until I was winning again. I played 5 sessions in April and May for an average loss of $110. In June, I finally started at least breaking even in the cash games, though I was down 1.7k on the month, due to the WSOP and Binions tournament buyins.
Things finally turned around in July, where I had 7 winning sessions, and my only losing sessions were tournaments. In August, I've had 2 up sessions and 2 down sessions, but my average result is $260 in profit. In cash games, I'm now nearly back to even for the year.
I'm starting to feel like I'm ready to play online again, but I'm thinking of closing out my Full Tilt account, since I don't have rakeback. Chad's been extolling the virtues of rakeback in relation to his Sit-n-go challenge, and I'd like to find a place to play that offers that.
Things finally turned around in July, where I had 7 winning sessions, and my only losing sessions were tournaments. In August, I've had 2 up sessions and 2 down sessions, but my average result is $260 in profit. In cash games, I'm now nearly back to even for the year.
I'm starting to feel like I'm ready to play online again, but I'm thinking of closing out my Full Tilt account, since I don't have rakeback. Chad's been extolling the virtues of rakeback in relation to his Sit-n-go challenge, and I'd like to find a place to play that offers that.
Subscribe to:
Posts (Atom)