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

Guy*_*ito 4 c# math gaussian

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

在使用正弦波之前我做过类似的事情.但我不知道如何制作钟形曲线.这些方程对我来说是希腊的.我忘记了如何阅读它们,但无论如何它对计算机来说都是希腊语.

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

mik*_*nix 10

当然.

p(x) = exp(-(x-mu)^2/(2*sigma^2))/sqrt(2*pi*sigma^2)
Run Code Online (Sandbox Code Playgroud)

钟形曲线也称为高斯概率分布.它基本上取ex值的负平方的.其余的是确保它以μ为中心并按比例缩放您正在建模的特定问题的细节,并确保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"
Run Code Online (Sandbox Code Playgroud)

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