%20%E7%B5%90%E6%9E%9C%E7%9A%84%E9%A0%BB%E7%8E%87.png)
我正在嘗試使用 Excel 或 LibreOffice Calc 模擬大量擲骰子。我設法找到這裡根據指定要產生的數字數量和數字產生範圍的值產生多個隨機數的公式,然後將總數相加:
=SUM(RANDBETWEEN(1,(ROW(INDEX($A:$A,1):INDEX($A:$A,$A2))<=$A2)*$B2))
我想做的不是像這樣計算「骰子」的總和,而是獲得一個輸出,顯示特定結果發生的次數,例如擲 1 的頻率。
雖然我知道如何使用各種計數函數來執行此操作,但如果我試圖確定單元格的列或行中出現的值的頻率,我無法弄清楚如何對生成的一組數字執行此操作那個單細胞。
這可能嗎?任何幫助將不勝感激。
編輯(希望)進一步清晰:
因此,例如,上面的函數會產生以下結果:
它允許我指定要滾動的骰子數量(在 A2 處)和骰子的面數(在 B2 處)(圖片還包括一個常數修飾符,但我在這裡不關心這個),然後在它在單個單元格(在影像中的E1)中產生這些參數內的多個隨機數,並列出它們的總和。因此,在圖像中,它產生了 1 到 3 之間的 2 個數字,並添加了 2 的常數修飾符,結果是 7。
我想弄清楚的是如何讓 E1 單元輸出指示產生特定值的次數。因此,在這個例子中,為了得到 7 的輸出,兩個隨機產生的數字必須是 2 和 3。因此在範例中E1 單元格將讀取為1。
Edit2:
因此,當我輸入 #dice 和 #sides 值時,目前編寫的函數會產生 1 和 #sides 值之間的幾個隨機數,並輸出它們的總和。如果 #dice 值為 3,它將產生 3 個隨機數字並給出這三個數字的總和。如果我將 #dice 值更改為 10,它會產生 10 個隨機數字並給出這些數字的總和。我永遠看不到隨機產生的數字,只能看到總和。
我對隨機數的總和不感興趣。相反,我希望做的是更改該函數,以便它在生成隨機數時追蹤生成特定數字的頻率。
例如,假設 #dice 為 4,#sides 為 6,然後函數產生這組數字:1、3、5、1。一組4、5、1、3,則輸出將為1。
與當前函數一樣,我希望找到的解決方案實際上並不會向我顯示隨機產生的數字,僅顯示最終輸出 - 產生 1 的次數。就像單單元格數組公式一樣追蹤生成的頻率。
答案1
=COUNTIF(RANDBETWEEN(1,(ROW(索引($A:$A,1):INDEX($A:$A,$A2))<=$A2)*$B2), 1)
所以這就是我一直在尋找的。後一個 COUNTIF 條件也可以更改,例如,輸入「<=2」作為最後一個條件,而不是追蹤 1 出現的頻率,單元格將輸出滾動的 1 或 2 的總數。
編輯:在進一步測試中,當僅產生 1 個隨機數時,這似乎會產生錯誤。顯然這不是一個完美的解決方案,但對於我的目的來說已經足夠好了。