-
-
Save shimondoodkin/1987046 to your computer and use it in GitHub Desktop.
| var doors=7; | |
| function offerdoors() | |
| { | |
| if(doors<3) return "error"; | |
| var arr=[];for(var d=0;d<doors;d++)arr[d]=0;// fill the rage | |
| arr[Math.floor(Math.random()*3)]=1; | |
| choose(arr) | |
| } | |
| function whereno(arr,choice) | |
| { | |
| while(true) | |
| { | |
| var randomtoremove=Math.floor(Math.random()*doors); | |
| if(randomtoremove==choice) continue; | |
| if(arr[randomtoremove]==1) continue; | |
| return randomtoremove; | |
| } | |
| } | |
| function choose(arr) | |
| { | |
| var choice=Math.floor(Math.random()*doors); | |
| var whereisno=whereno(arr,choice) | |
| var toswitch=Math.floor(Math.random()*2); | |
| if(toswitch==1) | |
| { | |
| while(true) | |
| { | |
| var newchoice=Math.floor(Math.random()*doors); | |
| if(newchoice==whereisno)continue; | |
| if(newchoice==choice)continue; | |
| break; | |
| } | |
| log_result(toswitch,arr[newchoice]) | |
| } | |
| else | |
| log_result(toswitch,arr[choice]) | |
| } | |
| var results=[[],[]] | |
| function log_result(toswitch,x) | |
| { | |
| results[toswitch].push(x); | |
| } | |
| var tests=1000 | |
| while(results[0].length<tests||results[1].length<tests) | |
| offerdoors() | |
| function round(num, dec) {return Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);} | |
| console.log("percent of success") | |
| var sum,toswitch; | |
| sum=0; | |
| toswitch=1; | |
| results[toswitch].splice(tests);; | |
| results[toswitch].forEach(function(c){sum+=c}) | |
| var avg=sum/results[toswitch].length; | |
| console.log(results[toswitch].length+" tests"," to switch",round(avg*100,2)+"%","a chance of "+round(avg*doors,2)+" in "+doors); | |
| sum=0; | |
| toswitch=0; | |
| results[toswitch].splice(tests);; | |
| results[toswitch].forEach(function(c){sum+=c}) | |
| var avg=sum/results[toswitch].length; | |
| console.log(results[toswitch].length+" tests","not switch",round(avg*100,2)+"%","a chance of "+round(avg*doors,2)+" in "+doors); |
percent of success
1000 tests to switch 38.2% a chance of 1.53 in 4
1000 tests not switch 23.3% a chance of 0.93 in 4
percent of success
1000 tests to switch 11% a chance of 1.1 in 10
1000 tests not switch 10.2% a chance of 1.02 in 10
percent of success
1000 tests to switch 0.3% a chance of 0.3 in 100
1000 tests not switch 0.7% a chance of 0.7 in 100
now this is surprising the success supposed to be 0.01; but it is larger.
I guess the higher rate is because you choose one from two, not from 3.
a choice of a one from two really makes a difference
if you switch. you get some chance points for free as the removed chance.
as 1/[num choices], when the chance is 1/3, you get another 1/3 for free.
but in numbers larger then 5 it halps a very little.
looks like a chance of 50% that it will halp a about 10% in larger numbers.
sample output:
percent of success
1000 tests to switch 66.9% a chance of 2.01 in 3
1000 tests not switch 34% a chance of 1.02 in 3