如何生成钟形曲线。编程中的高斯函数

时间:2013-09-13 01:06:17

标签: c# math gaussian

我希望能够生成一条钟形曲线,用于游戏程序生成中的概率。 例如,如果我想生成一个森林,我可以给它一个半径和强度,并制作一个正确形状的钟形曲线,以便给我一个树是否应该被放置的概率。我最终会在中心有很多树木,当你从中心接近半径距离时,它们会变得不那么频繁。

在使用正弦波之前我做过类似的事情。但我不知道如何制作钟形曲线。 These equations对我来说是个希望。我已经忘记了如何读取它们,但无论如何它对计算机来说都是希腊语。

有人可以在C#中记下钟形曲线的等式(或者python是我的第二选择)并且可能会解释一下吗?

1 个答案:

答案 0 :(得分:10)

不确定

p(x) = exp(-(x-mu)^2/(2*sigma^2))/sqrt(2*pi*sigma^2)

钟形曲线也称为高斯概率分布。它基本上将 e 取为 x 值的负平方的幂。其余的是确保它以μ为中心并根据您正在建模的特定问题的具体情况进行缩放,并确保 x 的所有值的积分总和为1。

要在Python中从此发行版生成随机样本,您可以执行以下操作:

import random

sample = random.gauss(mu, sigma)
# where mu is the center of the bell curve, and sigma is proportional to its "width"

如果你想要一个二维钟形曲线,很高兴知道你可以像上面那样分别找到 X Y 值,以及2D绘图将是2D钟形曲线,其中密度在中心(mu_x, mu_y)处最高。