JavaScript の Math.random はどれくらいランダムですか? 質問する

JavaScript の Math.random はどれくらいランダムですか? 質問する

私は6年間乱数ジェネレータ私のウェブサイトの のページです。長い間、Google で「乱数ジェネレータ」を検索すると 1 番目か 2 番目の結果に表示され、ディスカッション フォーラムやブログで数十、あるいは数百のコンテストや抽選の決定に使用されてきました (私は自分のウェブログで参照元を確認して、たいていは見に行くので知っています)。

今日、誰かが私にメールを送ってきて思ったほどランダムではないかもしれません。彼女は非常に大きな乱数(例えば1から100000000000000000000の間)を生成しようとしましたが、それらはほとんど常に同じ桁数であることがわかりました。実際、私は関数をループでラップして何千もの数字を生成できるようにしましたが、確かに非常に大きな数字の場合、変動はわずか2桁程度でした。

なぜ?

ループバージョンはこちらなので、ぜひ試してみてください。

http://andrew.hedges.name/experiments/random/randomness.html

これは、Mozilla 開発者ネットワークそして、もう存在しない Web ページから私が 1997 年にコピーしたコード (Paul Houle の「Central Randomizer 1.3」)。各メソッドがどのように動作するかを確認するには、ソースを表示してください。

もう読んだここそして他の場所についてメルセンヌツイスター。私が興味を持っているのは、JavaScriptの組み込み関数の結果に大きなばらつきがないのはなぜかということです。数学.ランダム機能。ありがとう!

ベストアンサー1

1 から 100 までの数字を指定します。

  • 9 は 1 桁の数字 (1-9) を持つ
  • 90は2桁(10~99)
  • 1は3桁(100)

1 から 1000 までの数字を指定します。

  • 9 人は 1 桁の数字を持っています
  • 90は2桁
  • 900は3桁
  • 1は4桁

等々。

したがって、ランダムにいくつかを選択した場合、選択された数字の大部分は同じ桁数になります。これは、考えられる値の大部分が同じ桁数であるためです。

おすすめ記事