日期:2014-05-16  浏览次数:20441 次

for语句应用,请您解答,谢谢。
<script type="text/javascript">

 var b1=Math.round(Math.random())
 var b2=Math.round(Math.random())
 var b3=Math.round(Math.random())
 var b4=Math.round(Math.random())
 var b5=Math.round(Math.random())
//当b1、b2同时为0时,输出3组此时b1、b2、b3、b4、b5的随机值
//如:00101、00110、00001
 </script>

------解决方案--------------------
不明白什么叫输出3组?
------解决方案--------------------
var b1,b2,b3,b4,b5;
for(var i=1;i < 4;){
    b1=Math.round(Math.random());
  b2=Math.round(Math.random());
  b3=Math.round(Math.random());
  b4=Math.round(Math.random());
  b5=Math.round(Math.random());
if (b1 == 0 && b2 == 0) {
    console.log();//输出b1-b5的值
    i ++;
}
}

------解决方案--------------------
有输出内容就见鬼了。
------解决方案--------------------

var _al,
_count = 0;
for(;;){
_al = [
Math.round( Math.random() ),
Math.round( Math.random() ),
Math.round( Math.random() ),
Math.round( Math.random() ),
Math.round( Math.random() )
];
if( _al[ 0 ] == 0 && _al[ 1 ] == 0 ){
console.log( _al.join("") );
if( ++_count >= 3 ){ break; };
};
};

------解决方案--------------------

var arr = [];
while(arr.length<3)
{
var n = ((~~(Math.random()*32))
------解决方案--------------------
32).toString(2).replace(/./g,",$&").slice(3);
if(n.indexOf("0,0")==0)
arr.push(n);
}
alert(arr.join(";"));


------解决方案--------------------
引用:

var arr = [];
while(arr.length<3)
{
var n = ((~~(Math.random()*32))
------解决方案--------------------
32).toString(2).replace(/./g,",$&").slice(3);
if(n.indexOf("0,0")==0)
arr.push(n);
}
alert(arr.join(";"));



我可以理解为输出两个0外加3个随机01么?
大家讨论一下。

从概率角度分析,反正0和1出现的概率都是0.5,用循环去跑,直到b1和b2相等,和b3 b4 b5没有任何关系,他们的是相互独立的事件。因此:


for(var i=0; i<3; i++) {
  document.write('第'+(i+1)+'组:');
  document.write('0');
  document.write('0');
  document.write(Math.round(Math.random()));
  document.write(Math.round(Math.random()));
 &n