2016-07-04 42 views
-2

我已經實現的功能: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

回答

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

謝謝。這似乎符合我所尋找的。我最初在那裏嘗試了0.7,但是我想剩下的只是翻轉頭部/尾部位置或反過來放0.3。 – 5120bee

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"); 

「如何解決特定百分比的問題」

你可以用」 t,這是概率的工作原理