Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Excel n个随机数之和(用于模拟)_Excel_Algorithm_Random_Excel Formula - Fatal编程技术网

Excel n个随机数之和(用于模拟)

Excel n个随机数之和(用于模拟),excel,algorithm,random,excel-formula,Excel,Algorithm,Random,Excel Formula,是否可以在Excel中定义一个命名字段,用随机数向量填充,只使用一个公式 在我只想有一个随机数的情况下,我可以定义一个名为random的命名字段,其值为=RND(),现在我想创建一个名为random\u vector的字段,其中包含n随机值的向量。一种规范的方法是通过OFFSET(RND();0;0;n)定义命名字段,但这不起作用 这个问题可以很容易地通过用随机数填充一列,然后在此列上定义一个命名字段来解决。这个解决方案行不通,因为我必须用公式填充许多单元格 问题背景 其中一个应用是,我想用一种

是否可以在Excel中定义一个命名字段,用随机数向量填充,只使用一个公式

在我只想有一个随机数的情况下,我可以定义一个名为
random
的命名字段,其值为
=RND()
,现在我想创建一个名为
random\u vector
的字段,其中包含
n
随机值的向量。一种规范的方法是通过
OFFSET(RND();0;0;n)
定义命名字段,但这不起作用

这个问题可以很容易地通过用随机数填充一列,然后在此列上定义一个命名字段来解决。这个解决方案行不通,因为我必须用公式填充许多单元格

问题背景

其中一个应用是,我想用一种简单的方法计算n个随机变量的和(或积,或分位数…)。例如,我可以通过公式计算5个均匀随机数的和

=RND()+RND()+RND()+RND()+RND()
如果我现在想计算50个均匀随机变量的和,我可以扩展这个公式,使其包含50个术语
RND()
,但这将是一个混乱

某些精度

    我非常感谢您的帮助,因为我必须在没有VBA或AdONS的Excel中实现这一点(否则我会用C++来编码,然后将它链接到Excel)
  • 非均匀分布的均匀随机变量之和
  • 无论如何,我对均匀随机变量之和不感兴趣,而是对一般情况感兴趣。均匀分布仅用于说明目的。我的目标是计算随机向量的n次卷积

对0和1之间的5个不同随机数求和

=SUMPRODUCT(randtween({0,0,0,0,0},100000))/100000

或者更一般地说

=SUMPRODUCT(RANDBETWEEN(行(间接(“1:5”))*0100000))/100000


将5替换为任意数字

以将0和1之间的5个不同随机数相加

=SUMPRODUCT(randtween({0,0,0,0,0},100000))/100000

或者更一般地说

=SUMPRODUCT(RANDBETWEEN(行(间接(“1:5”))*0100000))/100000


将5替换为任意数字

Excel is。。擅长。grrr.我想这很容易用
n*RND()
来回答。n*RND()将给出n乘以相同的随机数,因为n个不同的数参见我的回答添加n个均匀变量会导致非均匀(Irwin Hall)分布。您可以使用
=NORM.S.INV(RAND())
生成正态随机变量,并且总和也是正态分布的。(理论上,
RAND()
可能返回0,但这种情况不太可能被有效忽略)@pnuts:是的,第一个是二项式的,第二个是UniformExcel is。。擅长。grrr.我想这很容易用
n*RND()
来回答。n*RND()将给出n乘以相同的随机数,因为n个不同的数参见我的回答添加n个均匀变量会导致非均匀(Irwin Hall)分布。您可以使用
=NORM.S.INV(RAND())
生成正态随机变量,并且总和也是正态分布的。(理论上讲,
RAND()
可以返回0,但这种情况不太可能被有效忽略)@pnuts:是的,第一个是二项式的,第二个是UniformOf course
RAND()
从不返回1,但是,是的,理论上它可以返回5……但它返回0的频率要比10万^5:1好得多。根据我的测试,它实际上每次都会重置随机数(与我的相反,我不这么认为)+这回答了这个问题,因为它最初是被提出的,并且可以被改编成卷积,这可能是另一篇文章的主题。要获得完整的精度范围,您可以将
100000
替换为
2^52
(也可以更简单地将
^0-1
替换为
*0
)@motsdujour Use Formulas>Evaluate Formula,您将看到在解决方案中重复使用相同的随机数。换句话说,与
5*RND()
相同。(我假设
RND()
RAND()
的一个区域变体)问题在于,由于RND()不带参数,我们不能给它提供向量,因此randbween。@lori\m。谢谢*0,Doh!我在“深思熟虑”这一点——当然,
RAND()
从不返回1,但是,是的,理论上这可以返回5……但它只返回0,
100000^5:1,这是更好的解决方案。根据我的测试,它实际上每次都会重置随机数(与我的相反,我不这么认为)+这回答了这个问题,因为它最初是被提出的,并且可以被改编成卷积,这可能是另一篇文章的主题。要获得完整的精度范围,您可以将
100000
替换为
2^52
(也可以更简单地将
^0-1
替换为
*0
)@motsdujour Use Formulas>Evaluate Formula,您将看到在解决方案中重复使用相同的随机数。换句话说,与
5*RND()
相同。(我假设
RND()
RAND()
的一个区域变体)问题在于,由于RND()不带参数,我们不能给它提供向量,因此randbween。@lori\m。谢谢*0,Doh!我“思考不足”,因此改变了我的答案