簡體   English   中英

GSheets - 在兩個值(固定數字)之間生成一個隨機數字列表(固定數量),加起來等於聲明的總和

[英]GSheets - Generate a random list of numbers (fixed quantity) between two values (fixed numbers) that add up to a declared sum

問題陳述...

關於谷歌表格,我目前正在尋找在兩個已知值之間生成隨機固定數量的數字,當添加時......等於一個已知值。

所以讓我們假設我想要 10 個隨機值,當添加時......等於 100。但每個值都必須在 8 到 12 之間,並且在單個列中。 所以 output 看起來像......

8 9 12 11 8 9 11 11 9 12

如何在 GSheets 或 Excel 到 output 中設置公式? 我可以在哪里輸入所需的數字數量和所需的最終總數? 你會是上帝派來解決這個問題,謝謝!

將您的問題想象為從袋子中選擇球而不更換。 有 120 個球,10 個不同的 colors 各 12 個。 每種顏色留出 8 個。 將剩下的 40 個放在一個袋子里,隨機 select 20 個不更換,和其他 80 個放在一起。現在你有 100 個球,每個顏色的隨機值在 8 到 12 之間。 但是,結果數字不會均勻分布。 搜索“無放回抽樣”以獲取分布公式。

對於您的具體示例,請將其放入A1:A10

=FREQUENCY(INT((ROUND(MOD(SMALL(RANDBETWEEN(-1e12,SIGN(ROW(INDIRECT("1:40")))*1e12)+ROW(INDIRECT("1:40"))/100,ROW(INDIRECT("1:20"))),1),2)*100-1)/4)+1,ROW(INDIRECT("1:10")))+8

使用Ctrl + Shift + Enter提交。

為了概括它,我這樣設置我的電子表格:

  • B1 :所需的隨機數的數量(例如,10)
  • B2 :最小值(例如,8)
  • B3 :最大值(例如,12)
  • B4 :期望的總數(例如,100)
  • B5 : =(B3-B2)*B1 (可用的插槽數)
  • B6=CEILING.MATH(LOG10((B3-B2)*B1))
  • B7 : =10^B6
  • B8 : =B4-B1*B2 (要填充的槽數)

廣義公式為:

=FREQUENCY(INT((ROUND(MOD(SMALL(RANDBETWEEN(-1e12,SIGN(ROW(INDIRECT("1:"&B5)))*1e12)+ROW(INDIRECT("1:"&B5))/B7,ROW(INDIRECT("1:"&B8))),1),B6)*B7-1)/(B3-B2))+1,ROW(INDIRECT("1:"&B1)))+B2

重新計算工作表以獲得一組新數字(Excel 中的F9 )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM