问题陈述...
关于Google表格,我目前正在寻找在两个已知值之间生成随机的固定数量的数字,该数量在相加后等于已知值。
因此,假装我想要10个随机值,当它们相加时……等于100。但是每个值都必须在8到12之间,并且必须在同一列中。所以输出看起来像...
891211891111912
如何在GSheets或Excel中设置公式以输出该公式?在哪里可以输入所需数量和所需最终总数?您将是上帝送来解决这个问题,谢谢!
想到您的问题是从瓶子中选择球而不更换。 10个数字中的每个数字都必须至少为8,因此您已经达到80个数字。但是每个数字都可以高达12,因此每个数字都有4个“插槽”可以填充,总共40个插槽。您只想填充这些插槽中的20个,这将使您达到100个。我建议您设置问题,例如从20个球中选择,而不用从10种不同颜色的4个球的罐子中替换。
对于您的特定示例,将其放入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
。