Excel中的离散随机数发生器

Excel中的离散随机数发生器,excel,Excel,这篇文章的目的是展示如何编写一个函数来生成基于电子表格中离散分布的随机数,而无需调用 数据分析随机数生成-离散分布 我没有在Excel中找到基于RAND函数的解决方案,因此下一个函数应该可以解决此问题 Public Function Discrete(value As Variant, prob As Variant) Dim i As Integer Dim cumProb As Single Dim uniform As Single Randomize Application.Volati

这篇文章的目的是展示如何编写一个函数来生成基于电子表格中离散分布的随机数,而无需调用
数据分析随机数生成-离散分布

我没有在Excel中找到基于RAND函数的解决方案,因此下一个函数应该可以解决此问题

Public Function Discrete(value As Variant, prob As Variant)
Dim i As Integer
Dim cumProb As Single
Dim uniform As Single
Randomize
Application.Volatile
uniform = Rnd
cumProb = prob(1)
i = 1
Do Until cumProb > uniform
i = i + 1
cumProb = cumProb + prob(i)
Loop
Discrete = value(i)
End Function
现在,您可以使用函数“Discrete”生成所需的值,并按F9刷新它们


您可以使用MINIFS函数作为简单的解决方案


问答网站也是如此,它不是展示您开发的所有内容的地方。请在您的答案中以纯文本形式添加代码。亲爱的,我试图附加excel工作表的打印屏幕,但它已更改为链接!如果你点击链接,你可以看到程序。请阅读。以4个空格开始您的代码行。