0

我对 C# 比较陌生,并且正在使用 Monte Carlo Simulation 做一个项目。基本上我的问题如下。

我有两个不确定的变量输入,A 和 B,它们将通过一个模型并给出输出 C。所以 C = f(A,B)。我知道 A 的概率分布(三角形)和 B 的概率分布(离散)。如何获得 C 的概率分布?

我现在所做的是,我可以根据 A 的三角分布以及 B 的离散分布生成随机数。每对随机生成的 A 和 B 给出一个结果 C。我已经运行了这个模型 1000 次,因此我可以得到 1000 个可能的 C 值。困难是得到 C 的每个值的相应概率。显然它不是 1/ 1000 除非 C 是均匀分布的。我可以使用任何蒙特卡洛模拟包/库吗?

4

2 回答 2

2

将它们放在直方图中。

例如创建 1000 个 bin,每个 bin 对应一个小区间。然后运行模型 TotalN=1000000 次并计算每个间隔中有多少值。

然后计算n[i]/TotalN/WidthOfBin得到该区间的近似概率密度。

于 2011-02-14T10:36:29.927 回答
0

要直观地理解问题中涵盖的概念,请阅读 Sam Savage 的 The Flaw Of Averages。它提供了示例代码、演示项目和电子表格,展示了如何对上述问题进行建模。

于 2011-04-24T23:38:27.143 回答