0

我已经实现了这个功能:

 function coinFlip() {
      return(Math.floor(Math.random()*2) === 0) ? 'Heads' : 'Tails';
 }

一切正常(我已经测试过了)。

我的问题是,我如何制作这个函数,以使获得“正面”的概率为 30%,而获得“反面”的概率为 70%?

提前致谢

4

2 回答 2

6
function coinFlip() {
      return(Math.random() < 0.3) ? 'Heads' : 'Tails';
 }
于 2016-07-04T00:24:42.593 回答
1

如果三枚硬币中的一枚是正面,这并不意味着在 10 次抛硬币中会有 3 个正面。这是您的 500 次抛硬币代码(只需更改数字)

    function coinFlip() {
          return(Math.random() < 0.3) ? 'Heads' : 'Tails'; //ofc 0.3 is 30% (3/10)
    }

 var howManyTimes=500;
 var countHeads=0; 
 for (var i=0; i<howManyTimes;i++){
     if (coinFlip()==='Heads'){
       countHeads++;
     }
 }
 alert("Heads appear "+(countHeads/howManyTimes)*100+"% of the time");

“如何解决特定百分比问题”

你不能,这就是概率的运作方式

于 2016-07-04T00:27:47.780 回答