Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/419.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript GSheets-生成两个值(固定数字)之间的随机数字列表(固定数量),这两个值相加为一个声明的总和_Javascript_Arrays - Fatal编程技术网

Javascript GSheets-生成两个值(固定数字)之间的随机数字列表(固定数量),这两个值相加为一个声明的总和

Javascript GSheets-生成两个值(固定数字)之间的随机数字列表(固定数量),这两个值相加为一个声明的总和,javascript,arrays,Javascript,Arrays,问题陈述 关于谷歌表单,我目前正在寻找在两个已知值之间生成一个随机固定数量的数字,当添加这些数字时。。。等于已知值 让我们假设我想要10个随机值,当加起来。。。等于100。但是每个值必须在8到12之间,并且在单个列中。所以输出看起来像 八, 9 12 11 8. 9 11 11 9 十二, 如何在GSheets或Excel中设置公式以输出此结果?我可以在哪里输入所需数量和期望的最终总数?你会是上帝派来解决这个问题的,谢谢 把你的问题想象成从袋子里挑选球而不更换。共有120个球,10种不同颜色的1

问题陈述

关于谷歌表单,我目前正在寻找在两个已知值之间生成一个随机固定数量的数字,当添加这些数字时。。。等于已知值

让我们假设我想要10个随机值,当加起来。。。等于100。但是每个值必须在8到12之间,并且在单个列中。所以输出看起来像

八, 9 12 11 8. 9 11 11 9 十二,


如何在GSheets或Excel中设置公式以输出此结果?我可以在哪里输入所需数量和期望的最终总数?你会是上帝派来解决这个问题的,谢谢

把你的问题想象成从袋子里挑选球而不更换。共有120个球,10种不同颜色的12个球。每种颜色留出8个。将剩余的40个装在一个袋子里,随机选择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
    =天花板。数学(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

到目前为止您尝试了什么?您可以看看这个问题: