4

ゲームの手続き型生成で確率に使用するベル カーブを生成できるようにしたいと考えています。たとえば、森を生成したい場合、半径と強度を指定し、適切な形状のベル カーブを作成して、木を配置するかどうかの確率を得ることができます。中心に多くの木ができて、中心から半径の距離に近づくにつれて、それらの頻度は少なくなります。

正弦波を使用する前に、同様のことを行いました。しかし、ベルカーブの作り方がわかりません。これらの方程式は私にとってギリシャ語です。読み方を忘れてしまいましたが、いずれにせよコンピュータにとってはギリシャ語でしょう。

誰かがC#でベルカーブの方程式を書き留めて(またはpythonが私の2番目の選択肢になるでしょう)、少し説明してもらえますか?

4

1 に答える 1

11

もちろん。

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

ベル カーブは、ガウス確率分布とも呼ばれます。基本的に、eをx値の負の 2 乗に乗じています。残りは、モデル化する特定の問題の詳細に合わせて、その中心が 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"

2 次元のベル カーブが必要な場合は、上記のようにX値とY値を別々に見つけることができ、2D プロットは 2D ベル カーブになり、中心で密度が最大になります(mu_x, mu_y)

于 2013-09-13T01:24:48.557 に答える