デルタ(変更)を小さくしたい場合は、デルタの小さな乱数を生成するだけです。
たとえば、代わりに:
windspeed = random (100) # 0 thru 99 inclusive
のような使用何か:
windspeed = windspeed - 4 + random (9) # -4 + 0..8 gives -4..4
if windspeed > 99:
windspeed = 99
if windspeed < 0:
windspeed = 0
そうすれば、あなたの風速は依然として必要範囲内に維持され、それは今まで徐々に変化します。
徐々に変化しているものが一定方向からの角度であれば、これは速度のような絶対値と方向についても機能します。
これはかなりの測定に使用できます。
また
、あなたはおそらく、大きなデルタとその風速の変化を確実にするために、しかし、あなたが現在そうであるように、ゆっくりと、あなたのターゲット風速を生成することができますが、それに向かって徐々に移動したい場合:
windspeed = 50
target = windspeed
while true:
# Only set new target if previous target reached.
if target == windspeed:
target = random (100)
# Move gradually toward target.
if target > windspeed:
windspeed = windspeed + max (random (4) + 1, target - windspeed)
else:
windspeed = windspeed - max (random (4) + 1, target - windspeed)
sleep (1)
風をシミュレートしたい場合は、風向きを変更するタイミングを教えてくれる乱数の後にはおそらくあります。このランダムな時間イベントが発生したときに風向きを変更するが、ある角度と速度(やはりランダム)に方向を限定するので、ある範囲内の乱数を選択して徐々に+ 1(0.0〜5.0) 1秒ごとに(ランダムに0-3秒ランダムに)等ランダムな変化に0-180度になるまで一定の時間が再び無作為です。非常にシンプルですが、これらの時間や度合いの変更などをどのように実装するかはあなた次第です。 – pengibot
@Jodrell Benfordの法則はここでは完全に適用できません。分布後の問題は興味深い質問かもしれませんが、ベンフォードの法則は単に数値的現象を記述しています。連続乱数分布を記述するものではありません(サンプリングされる離散分布を記述しますが、 )。 –
風をベクトルとして表現し、ランダムな値で移動平均を行うことができます。それはあなたが平均したサンプルサイズに比例して変動を滑らかにします。 –