【问题标题】:How to count a random output within a loop?如何计算循环内的随机输出?
【发布时间】:2019-01-24 15:11:38
【问题描述】:

给出的是:

var summe = 0;
var i = 1;
while(summe < 4){
    summe += Math.random();
    document.write(i++ + ") " + summe + "<br>");
}

i 通常在 6 到 12 个加法的范围内,直到 while 被满足。

比方说,如何计算 1000 次加法在 4 到 20 之间的次数?

【问题讨论】:

  • a) 设置另一个计数器 b) 在 1000 次循环中运行代码 c) 每次 i 在 4 到 20 之间时递增计数器
  • ... 并且可能将求和逻辑包装到一个函数中,这样就很清楚了。
  • 你能说得清楚点吗?

标签: javascript for-loop while-loop


【解决方案1】:

不幸的是,我在学校的概率课程中逃课,希望你更加刻苦,但最后,你的问题归结为:

  • 执行操作少于 4 次的几率是多少? (0 因为你期望结果严格大于 4,所以至少会有 5 次操作),
  • 以及重复操作 + 20 次的机会是多少,知道在每次操作中我有 20% 的机会获得可以满足条件的结果。

这与测试次数无关。

下面的sn-p可能能够关联你将产生的概率的学者计算:

var result = [];
var j=0;
for (j;j<1000000;j++){
  var summe = 0;
  var i = 1;
  while(summe < 4){
      summe += Math.random();
   //   document.write(i + ") " + summe + "<br>");
      i++;
  }
  result.push(i);
}


const matchingResult = result.filter(num=>num<=20 && num>4);
// or that can be simplyfied  const matchingResult = result.filter(num=>num<=20);
console.log(matchingResult.length/10000,"%","between 4 and 20");

console.log(result.filter(num=>num>20));

希望有帮助!;)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 2021-05-13
    • 2019-04-20
    • 1970-01-01
    • 2015-01-06
    • 2012-05-20
    • 2020-08-28
    • 1970-01-01
    相关资源
    最近更新 更多