4

乱数ジェネレーターを実装して、必要な最大数を設定できるようにするだけでなく、確率を微調整して、より大きな数を取得するのを難しくしたいと考えています。

これを使用すると、100 の範囲内の任意の値に同じ確率が割り当てられます。

Math.floor(Math.random()*100);

数値が限界 (100) に近づくにつれて数値が表示されにくくなるようにするにはどうすればよいですか?

4

3 に答える 3

5

の結果を二乗するMath.random

var result = Math.random();
result = result * result;
result *= 100;
result = Math.floor(result);

指数を調整することで曲線を調整できます。さまざまな指数のグラフを次に示します。

指数が大きいほど急勾配になります。

整数以外の指数を使用する場合は、を使用する必要がありますMath.pow

于 2012-12-07T06:28:18.143 に答える
4

必要な確率の重み付けを与える曲線を持つ数学関数を使用するだけです。たとえば、あなたはあなたの数を「二乗」することができます:

ここに画像の説明を入力してください

var num = Math.pow(Math.floor(Math.random()*10), 2);

上記は、1〜10の乱数を生成し、それを2乗して、1〜100の乱数を生成しますが、より低い数に重み付けされます。

より高い電力を使用することで、重みをさらに増やすことができます。

于 2012-12-07T06:29:00.773 に答える
0

Math.pow(Math.floor(Math.random()* 10)、2);

または同様のもの。

于 2012-12-07T06:29:14.683 に答える