質問: 0; } items[key]++; } console.log(items); ``` ※ ここのページを参考にいろいろと改良しました。 ### 問題点 このやり方では超低確率での偏りランダムを行う際、➂の手順で大量のデータを入れる必要があります。 環境によってはメモリ不足などのパフォーマンスに影響を及ぼします。 その為、著しく低い確率の偏りランダムを行うのは不向きです。 ループを使わずにパフォーマンスも安定している偏りランダムを行う方法についてご教授ください。 よろしくお願いします。
回答: 例の場合は、配列にAを160個、Bを39個、Cを1個入れています。これがわかるのなら、**わざわざ配列を見に行かずとも、配列の0~159番がA、160~198番がB、199番がCだとわかる**ことになります。...であれば、配列に入ったデータなど不要ということになります。 データ数を減らすために2で「約分」をしているのでしょうが、データが不要ならば約分をする必要もなくなります。たとえ1億分の1の確率であろうとも、くじを1億本も用意する必要はありません。