<script type="text/javascript"> /* Copyright (c) 2003. All Rights reserved. If you use this script, please email me and let me know, thanks! Andrew Hedges andrew@efficacy.net If you want to hire me to write JavaScript for you, see my resume. //efficacy.net/resume/ */ doc = document; function init() { // set up objects stob = doc.forms["teaser"].stayer; rob = doc.forms["teaser"].randomer; swob = doc.forms["teaser"].switcher; } function proveIt() { // create/clear out array doors = new Array(false,false,false); // reset tallies stwin = 0; stloss = 0; rwin = 0; rloss = 0; swwin = 0; swloss = 0; // clear out textareas stob.value = ""; rob.value = ""; swob.value = ""; // loop through 100 times for (l=100;l>0;l--) { // decide which door holds the prize d = rand(3); doors[d] = true; // randomly pick a door p = rand(3); // randomly remove one of the loser doors removed = false; while (!removed) { r = rand(3); if (r != d && r != p) { removedvalue = r; removed = true; } } // for randomer, randomly switch/stay ss = rand(2); if (ss==0) { // switch switchstay = false; while (!switchstay) { s1 = rand(3); if (s1 != p && s1 != removedvalue) { switchstayvalue = s1; switchstay = true; } } } else { // stay switchstayvalue = p; } // for switcher, switch for (s2=0;s2<3;s2++) { if (s2 != p && s2 != removedvalue) { switchervalue = s2; switcher = true; break; } } // determine outcomes // stayer if (d==p) { stwin++; stob.value = stwin + " Winner\n" + stob.value; } else { stloss++; stob.value = stloss + " Loser\n" + stob.value; } // randomer if (d==switchstayvalue) { rwin++; rob.value = rwin + " Winner\n" + rob.value; } else { rloss++; rob.value = rloss + " Loser\n" + rob.value; } // switcher if (d==switchervalue) { swwin++; swob.value = swwin + " Winner\n" + swob.value; } else { swloss++; swob.value = swloss + " Loser\n" + swob.value; } } // write final tallies stob.value = stwin + " winners\n" + stloss + " losses" + "\n-----\n" + stob.value; rob.value = rwin + " winners\n" + rloss + " losses" + "\n-----\n" + rob.value; swob.value = swwin + " winners\n" + swloss + " losses" + "\n-----\n" + swob.value; } // The Central Randomizer 1.3 (C) 1997 by Paul Houle (houle@msc.cornell.edu) // See: //www.msc.cornell.edu/~houle/JavaScript/randomizer.html // Usage: rand(n) returns random integer between 0 and n-1 rnd.today = new Date(); rnd.seed = rnd.today.getTime(); function rnd() { rnd.seed = (rnd.seed*9301+49297) % 233280; return rnd.seed/(233280.0); } function rand(number) { return Math.ceil(rnd()*number)-1; } </script>