MCPで接続 →

計算を入力してください

公式

広告

結果

生成された乱数
60, 757, 670, 250, 395, 346, 61, 589, 713, 422, 101, 597, 398, 29, 215, 526, 766, 440, 376, 776, 718, 881, 46, 989, 305, 846, 325, 85, 978, 232, 445, 302, 798, 988, 395, 1000, 962, 257, 301, 157, 810, 214, 174, 30, 914, 952, 750, 422, 903, 784
範囲(両端を含む) 1 to 1000
利用可能な異なる整数の数(N) 1,000
生成された個数 50

このツールでできること

「整数の一様乱数生成ツール」は、指定した範囲(両端を含む)から整数の乱数を一様に取り出して一覧で表示します。「一様」とは、下限から上限までのすべての整数が、まったく同じ確率で出現することを意味します。生成する個数や、同じ値が複数回現れてもよいか(重複の有無)を自由に設定できます。くじ引き・抽選番号の決定、サイコロやゲームの出目、データから行をランダム抽出するサンプリング、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\) 以下でなければなりません。

広告
Diagram mapping a continuous unit interval U from 0 to 1 into N equal segments, each pointing to one integer outcome
A uniform value U in [0,1) is scaled and floored to land in one of N equal slots.
Flat number line showing an inclusive integer range from lo to hi with evenly spaced equal-height bars indicating equal probability
Each integer in the inclusive range lo..hi has an equal chance of being chosen.

計算例

範囲を 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\) となり、出力されるのはその数値だけになります。

存在する整数より多くの異なる値を要求するとどうなりますか? 「許可しない」モードでは、要求を満たすだけの異なる整数が存在しないため、エラーが表示されます。

最終更新: