このツールでできること
「整数の一様乱数生成ツール」は、指定した範囲(両端を含む)から整数の乱数を一様に取り出して一覧で表示します。「一様」とは、下限から上限までのすべての整数が、まったく同じ確率で出現することを意味します。生成する個数や、同じ値が複数回現れてもよいか(重複の有無)を自由に設定できます。くじ引き・抽選番号の決定、サイコロやゲームの出目、データから行をランダム抽出するサンプリング、IDの割り当て、A/Bテストの振り分け、授業での統計デモなど、さまざまな場面で役立ちます。
使い方
「範囲(下限)」に最小値、「~」に最大値を入力します(1〜100000の整数)。「個数」には生成したい乱数の数(1〜100)を指定してください。重複については、「許可する」を選ぶと同じ値が再び現れる可能性のある抽出(復元抽出)になり、「許可しない」を選ぶとすべて異なる値だけが出力されます(非復元抽出)。下限と上限を逆に入力してしまった場合でも、ツールが自動的に並べ替えて処理します。
計算式の解説
範囲 \([\text{lo}, \text{hi}]\) には \(N = \text{hi} - \text{lo} + 1\) 個の異なる整数が含まれます。1回の抽出は次の式で求められます。
$$r = \text{lo} + \left\lfloor U \times N \right\rfloor$$ここで \(U\) は \([0, 1)\) の範囲の一様な実数の乱数です。\(U\) に \(N\) を掛けて小数点以下を切り捨てると \(0\) から \(N-1\) までの整数が得られ、それに \(\text{lo}\) を足して範囲内へ移動させます。これにより、どの値も正確に \(\frac{1}{N}\) の確率で選ばれます。重複を許可する場合は、要求された個数だけこの抽出を独立に繰り返します。重複を許可しない場合は、すでに選んだ値が出たら捨てる、という処理を繰り返し、異なる値が指定個数そろうまで抽出を続けます。そのため、生成個数は \(N\) 以下でなければなりません。
計算例
範囲を 1〜6、個数を 5、重複を許可するとした場合、各抽出は
$$r = 1 + \left\lfloor U \times 6 \right\rfloor$$となり、六面サイコロを振るのと同じ動きになります。結果の一例は 4, 1, 6, 4, 2 です(4 が重複していますが、これは許可されています)。重複を許可しない場合は、3, 5, 1, 6, 2 のように 5 つすべて異なる値になります。なお、1〜6 の範囲から異なる値を 7 個求めることはできません。整数が 6 個しか存在しないためです。
よくある質問
毎回違う結果になるのはなぜですか? この生成器は非決定的で、実行のたびに新しい乱数を引きます。出力が毎回変わるのは仕様によるものです。
下限と上限を同じ値にできますか? はい、可能です。両者が一致すると \(N = 1\) となり、出力されるのはその数値だけになります。
存在する整数より多くの異なる値を要求するとどうなりますか? 「許可しない」モードでは、要求を満たすだけの異なる整数が存在しないため、エラーが表示されます。