如何生成钟形曲线(高斯函数)

本文关键字:高斯 函数 曲线 何生成 钟形 | 更新日期: 2023-09-27 18:31:12

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

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

有人可以写下 C# 中钟形曲线的方程(或者 python 将是我的第二选择)并解释一下吗?

如何生成钟形曲线(高斯函数)

当然。

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

钟形曲线也称为高斯概率分布。 它基本上是将 e 取为 x 值的负平方的幂。 其余的就是确保它以 mu 为中心,并根据您正在建模的特定问题的细节进行缩放,并确保 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"
如果你想有一个二维的钟形曲线,很高兴

知道你可以像上面一样分别找到XY值,2D图将是2D钟形曲线,其中密度在中心(mu_x, mu_y)最高。