Смысл упражнения может заключаться в том, чтобы сделать эффективную функцию -
возможно, бросив, когда самый большой пробег голов или хвостов
больше количества оставленных бросков.
Run = window.Run || {};
Run.countmaxflips=function(n){
n= n || 10000;
var str= '', L= 0, temp, tem, run, max= 0,
toss= [[0, 0], [0, 0]];
while(L<n){
temp= Math.round(Math.random());
++toss[temp][0];
if(tem!=undefined && tem!== temp){
run= toss[tem][0];
if(run> toss[tem][1]) toss[tem][1]= run;
toss[tem][0]= 0;
if(max<run) max= run;
if(L+max >n)L= n;
}
tem= temp;
++L;
}
if(toss[0][1]=== max) str= max+' tails in a row ';
if(toss[1][1]=== max){
if(str) str+= ' and ';
str+= max+' heads in a row';
}
return str;
}
Run.countmaxflips(10000)
/* returned values: (Strings)
11 tails in a row and 11 heads in a row
14 heads in a row
15 tails in a row
17 heads in a row
12 heads in a row
12 tails in a row
12 tails in a row
14 heads in a row
11 tails in a row
14 tails in a row
15 tails in a row
11 tails in a row and 11 heads in a row
13 tails in a row and 13 heads in a row
13 tails in a row and 13 heads in a row
15 tails in a row
13 heads in a row
12 tails in a row
11 tails in a row and 11 heads in a row
15 heads in a row
13 tails in a row
*/