marshach Posted February 5, 2013 Report Share Posted February 5, 2013 (edited) I recently learned about the so-called "Monty Hall" problem. Like many people, I found it hard to believe that you have a better chance of winning if you switch doors. So, it occured to me that I could "prove" it to myself by writing a macro. Here it is, and it works! (Woo hoo!) (I'm not a professional macro writer. There might be a more efficient way to write a macro to demonstrate the problem.) (Direct edit text attached) // N1 is your decision to keep your original door or switch doors// N2 is the winning door// N3 is your original door choice // N4 is the number of times you win// N5 is the number of times you lose// T1 is your decision to keep your original door or switch doors// T2 is the winning door// T3 is your original door choice // A=Keep, B=SwitchMultiple Choice Menu: Keep or Switch?If Variable %T1% = "A" Variable Set Integer %N1% to 0Else Variable Set Integer %N1% to 1End IfRepeat Start (Repeat 1000 times)// N2 (also T2) is the *winning* door (set randomly) // Maxium Random Value set to 2. (0=door A, 1=door B, 2=door C) Variable Set Integer %N2% with a Random Number If Variable %N2% = 0 Variable Set String %T2% "Door A" End If If Variable %N2% = 1 Variable Set String %T2% "Door B" End If If Variable %N2% = 2 Variable Set String %T2% "Door C" End If // N3 (also T3) is your original door choice (set randomly). // Maxium Random Value set to 2. (0=door A, 1=door B, 2=door C) Variable Set Integer %N3% with a Random Number If Variable %N3% = 0 Variable Set String %T3% "Door A" End If If Variable %N3% = 1 Variable Set String %T3% "Door B" End If If Variable %N3% = 2 Variable Set String %T3% "Door C" End If // N1 is your decision (0 = Keep the original door), (1 = Switch doors) // If you keep the original door If Variable %N1% = 0 // ...and you had originally picked the winning door If Variable %T2% = variable %T3% // You win :-) Variable Modify Integer: %N4% = %N4% + 1 Else // ...and you had originally picked a losing door // You lose :-( Variable Modify Integer: %N5% = %N5% + 1 End If Else // If you switch doors // ...and you had originally picked the winning door If Variable %T2% = variable %T3% // You lose :-( Variable Modify Integer: %N5% = %N5% + 1 Else // ...and you had originally picked a losing door // You win :-) Variable Modify Integer: %N4% = %N4% + 1 End If End IfRepeat End // Wins = %N4%, Losses = %N5%Text Box Display: Wins and losses Edited February 5, 2013 by marshach Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.