2013-10-06 16 views
0

快速問題,我正在使用Google Spreadsheet,我把它放在一個單元格中。Google電子表格 - 執行隨機操作40次並存儲添加結果

=如果(RANDBETWEEN(1,40)= 1,1,0)

以上是我使用的1和40之間產生一個隨機數如果它發生降落在「1」的代碼,那麼它返回'1',否則返回0。我想要這個循環,但是循環讓我們說'20'次。

因此,在20次嘗試期間,'1'可能會出現'3'次。我正在尋找代碼,總計出現「1」輸出的隨機事件的數量並輸出該值。

所以,如果它發生了「3」時代,這將輸出3.如果隨機循環「1」觸發「5」的時期,它將返回5等等等等

我如何做到這一點在Google Spreadsheet中?

+1

將其複製20次,例如,複製到單元格A1到A20中。然後使用= sum(A1:A20)..這不是一個好的地方發佈這樣的東西,建議您使用谷歌電子表格論壇:http://productforums.google.com/fo朗姆酒/#!類別/文檔/電子表格 – eddyparkinson

+0

好主意,我喜歡這樣,我也在下面發佈了一個解決方案,您認爲更快嗎? –

回答

1

嗯,我找不到通過正常的命令的方式,但如果你去到腳本編輯器,添加以下內容:

function calcRandomTotal(iterations,percentChance){ 
    var maxNumber = 1/percentChance; 
    var hits = 0; 
    var randNum = 0; 

    for(i=0;i<iterations;i++){ 
    randNum = randomFromInterval(1,maxNumber); 
    if(randNum == 1){ 
     hits++; 
     randNum = 0;//reset it 
    } 
    } 

    return hits; 
}; 

function randomFromInterval(from,to) 
{ 
    return Math.floor(Math.random()*(to-from+1)+from); 
} 

然後簡單地說= calcRandomTotal(迭代,percentChance)或 calcRandomTotal( 20,0.025)(因爲0.025是2.5%或1/40的機會,這將對設定的迭代次數進行隨機模擬並返回總結果

+0

如果有人有更好的解決辦法,讓我知道。這樣做的缺點是計算起來有點慢 –

相關問題