[解決済み] JavaScriptのMath.randomはどのくらいランダムなのか?
質問
6年前から 乱数発生器 のページを持っています。長い間、このページは Google で「乱数発生器」の検索結果の 1 位または 2 位を占めており、ディスカッション フォーラムやブログで何十、何百ものコンテストや抽選を決めるために使用されてきました (Web ログで参照元を確認し、通常は見に行くため、私は知っています)。
今日、ある人が私に電子メールを送ってきました。 それは私が考えているほどランダムではないかもしれません。 彼女は非常に大きな乱数 (たとえば 1 から 1000000000000000 の間) を生成してみましたが、ほとんど常に同じ桁数であることがわかりました。実際、私は関数をループでラップして、何千もの数字を生成できるようにしましたが、案の定、非常に大きな数字に対して は 2 桁程度しか変わりませんでした。
どうしてですか?
以下はループバージョンですので、実際に試してみてください。
http://andrew.hedges.name/experiments/random/randomness.html
これは Mozilla Developer Network から取得した素直な実装と、今はもう存在しない Web ページ (Paul Houle の "Central Randomizer 1.3") から盗んできた 1997 年のコードの両方が含まれています。各方法がどのように動作するかは、ソースを参照してください。
私が読んだのは はこちら と 他の場所 について メルセンヌ・ツイスター 私が興味を持ったのは、なぜJavaScriptの組み込みの Math.random 関数から得られる結果に大きなばらつきがない理由です。ありがとうございます。
どのように解決するのですか?
1から100までの数字が与えられる。
- 9は1桁(1-9)である
- 90は2桁(10-99)
- 1 は 3 桁 (100)
1から1000までの数字が与えられている。
- 9は1桁の数字
- 90は2桁
- 900は3桁
- 1は4桁
といった具合になります。
つまり、ランダムにいくつかを選択すれば、その選択された数字の大部分は同じ桁数になります。
関連
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] jQueryで要素が非表示になっているかどうかを確認するには?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] JavaScriptでランダムな文字列/文字を生成する
-
[解決済み] JavaScriptで特定の範囲のランダムな整数を生成する?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptで2つの数値の間の乱数を生成する
-
[解決済み】別のウェブページにリダイレクトするにはどうすればいいですか?
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] モデルフェッチ時に1をtrueに、0をfalseに変換する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] なぜGoogle +1は私のマウスの動きを記録するのですか?[クローズド]
-
[解決済み] シード可能なJavaScript乱数生成器
-
[解決済み] JSのDateからDay名
-
[解決済み] AngularJSのエラーです。Cross Origin リクエストはプロトコルスキーム http, data, chrome-extension, https に対してのみサポートされています。
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] アサインの左側にJavascriptのオブジェクトブラケット表記({ ナビゲーション } =)があります。
-
[解決済み] CORS OriginヘッダーとCSRFトークンによるCSRF保護
-
[解決済み] react-routerのハッシュフラグメントからクエリパラメータを取得する
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?
-
[解決済み] jQueryのバージョン1、バージョン2、バージョン3の違いは何ですか?[クローズド]