Java の正規分布に従って、グリッド (MXN の行列) のセルをサンプリングする必要があります。
Apache Math ライブラリには、値を 1 次元 (1D) でサンプリングする関数があることを知っているので、ベクトルでは問題ありませんが、2D の代替が見つかりません。
1D アプローチを 2 回使用することを考えました。1 つは行用、もう 1 つは列用です。ただし、(1)幾何学的距離ではなくフォン ノイマン距離を使用するため、正確には適切ではありません。 (2) このアプローチでは繰り返しが回避されません (つまり、サンプリングではありません)。
では、特定のセル (r,c) を中心とした正規 (ガウス) 分布に従ってグリッド (マトリックス) のセルをサンプリングするにはどうすればよいでしょうか。
または、サンプリングが不可能な場合 (または複雑すぎる場合)、特定のセル (r、c) を中心としたグリッド内のセル全体に正規分布を使用して確率を分散するにはどうすればよいですか? たとえば、3x3::
0.1 | 0.1 | 0.1
0.1 | 0.2 | 0.1
0.1 | 0.1 | 0.1
前の値が実際にガウス分布に適合するかどうかはわかりませんが、さらに重要なことは、どのマトリックスでも、セルの合計が 1 でなければならないということです。
ここからは、ただ反復してロールするだけです。またはロールして繰り返し追加します。