Just a small exercise for my edification, regarding the "Gamblers Fallacy" inherent to "The Martingale" system of gambling.
import java.util.*;
import java.io.*;
import java.text.*;
/**
* A quick implementation of the Martingale
* system of gambling. Run it, and it will
* play at the roulette table, until broke.
* How far can you make it before going
* broke? Let me know!
*/
public class Martingale
{
public static String padLeftToTotal(long s, long n) {
return String.format("%1$#" + (n-(s+"").length()) +
"s", s + "");
}
public static void main(String[] stuff)
{
long account = 255;
long bet = 1;
long maxbet = 0;
// 0..36
// where red: 1, 3, 5, 7, .. 36
// where black: 2, 4, 6, .. 35
// where green : 0
while (account > 0L)
{
long result =
Math.round(Math.random()*36.0);
System.out.println("Account: " +
padLeftToTotal(account, 15) +
" Betting " + padLeftToTotal(bet, 15) +
" $ on red.. result is " +
padLeftToTotal(result, 3) + " " +
(result == 0 ? "green" : ((result % 2) == 0 ? "black" : " red")));
if (result != 0 && (result % 2) == 1)
{
// red, we win!
account += bet;
bet = 1;
}
else
{
// not red, we lose!
account -= bet;
bet *= 2;
if (bet > maxbet)
{
maxbet = bet;
System.out.println("Maximum bet increased to " + maxbet + "$");
try
{
Thread.sleep(1000);
} catch (Exception e)
{
}
}
}
}
System.out.println("You lose, dude!");
System.out.println("You now owe the casino " +
(-account) + " $");
}
}
import java.io.*;
import java.text.*;
/**
* A quick implementation of the Martingale
* system of gambling. Run it, and it will
* play at the roulette table, until broke.
* How far can you make it before going
* broke? Let me know!
*/
public class Martingale
{
public static String padLeftToTotal(long s, long n) {
return String.format("%1$#" + (n-(s+"").length()) +
"s", s + "");
}
public static void main(String[] stuff)
{
long account = 255;
long bet = 1;
long maxbet = 0;
// 0..36
// where red: 1, 3, 5, 7, .. 36
// where black: 2, 4, 6, .. 35
// where green : 0
while (account > 0L)
{
long result =
Math.round(Math.random()*36.0);
System.out.println("Account: " +
padLeftToTotal(account, 15) +
" Betting " + padLeftToTotal(bet, 15) +
" $ on red.. result is " +
padLeftToTotal(result, 3) + " " +
(result == 0 ? "green" : ((result % 2) == 0 ? "black" : " red")));
if (result != 0 && (result % 2) == 1)
{
// red, we win!
account += bet;
bet = 1;
}
else
{
// not red, we lose!
account -= bet;
bet *= 2;
if (bet > maxbet)
{
maxbet = bet;
System.out.println("Maximum bet increased to " + maxbet + "$");
try
{
Thread.sleep(1000);
} catch (Exception e)
{
}
}
}
}
System.out.println("You lose, dude!");
System.out.println("You now owe the casino " +
(-account) + " $");
}
}
“Remember this well, Lady Luck has no memory.”
References
- Wikipedia : Gambler's Fallacy
- http://en.wikipedia.org/wiki/Gambler%27s_fallacy
- What happened at Monte Carlo in 1913?
- http://www.fallacyfiles.org/gamblers.html
No comments:
Post a Comment