JavaScript:如何编码具有特定概率机会百分比的头部/尾部?

问题描述:

我已经实现的功能:JavaScript:如何编码具有特定概率机会百分比的头部/尾部?

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

而这一切都工作正常(我已经测试过)。

我的问题是,我该如何使这个函数获得'Heads'的概率是30%,而获得'Tails'的概率是70%?

在此先感谢

+1

选择一个介于0和1之间的随机数。如果这个数字小于0.3,它就是Heads。否则,它是尾巴... –

+0

好吧,但是假设我做了10次硬币翻转。我想打印结果和逻辑,其中3将是头,7将是尾巴。我如何实现? – 5120bee

+0

这不是一件确定的事情,其中​​3个是正面,7个是正面。在许多重复的实验中,平均数将是3头和7尾将 – derp

function coinFlip() { 
     return(Math.random() < 0.3) ? 'Heads' : 'Tails'; 
} 
+0

谢谢。这似乎符合我所寻找的。我最初在那里尝试了0.7,但是我想剩下的只是翻转头部/尾部位置或反过来放0.3。 – 5120bee

如果三选一抛硬币是头部,这并不意味着,在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"); 

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

你可以用” t,这是概率的工作原理