当前位置: 代码迷 >> JavaScript >> for语句应用,请您解答,多谢
  详细解决方案

for语句应用,请您解答,多谢

热度:308   发布时间:2013-11-21 23:38:25.0
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()));
  document.write(Math.round(Math.random()));
}


这样一来,感觉好无聊了啊。
------解决方案--------------------
我可以理解为输出两个0外加3个随机01么?

我也是这么觉得,不过楼主可能有别的用意
------解决方案--------------------
引用:
Quote: 引用:

我可以理解为输出两个0外加3个随机01么?

我也是这么觉得,不过楼主可能有别的用意


谢谢,前两个0也要随机得到的,后面是0是1也是随机。这5个数是一个批次得到,但前两个是0。这也是问题的意义所在


对呀,也就是说,前两个是固定的,就是0,所以我可以直接输出。再然后,后三个数的随机性和前两个是独立的,也就是说,后三个数的随机性不受前两个是否为0而影响。

因此,随机一组b1~b5直到b1=b2=0,此时的b3~b5的情况,与固定b1 b2为0,只随机一次b3~b5的情况,从概率上说,完全没有差异的。

再次强调,随机这5个数是相互独立的事件,不管是不是一个批次得到的,都没有关系的,因为他们不会相互影响。因此,没有必要随机5个数直到b1=b2=0。
  相关解决方案