確率の基本
確率とは何か
「明日雨が降る確率は 30%」「宝くじが当たる確率は 0.000001」——日常的に使う「確率」ですが、数学としてきちんと定義するとどういう意味でしょうか?
たとえばサイコロを1回振るとき、出る目は1〜6のどれかです。「全部で6通りある」「そのうち偶数(2・4・6)は3通り」——だから偶数が出る確率は 。これが確率の考え方の基本です。
数学的な確率は次のように定義されます。
ある試行の全結果が等しい確からしさで起こるとき、事象 A の確率は:
用語の整理
難しそうな用語が出てきますが、サイコロの例で考えると自然に理解できます。
| 用語 | 意味 | 例(サイコロ) |
|---|---|---|
| 試行 | 結果が偶然に決まる実験 | サイコロを1回振る |
| 標本空間 Ω | 全ての起こりうる結果の集合 | {1,2,3,4,5,6} |
| 事象 A | 標本空間の部分集合 | A = {偶数} = {2,4,6} |
| 確率 P(A) | 事象Aの起こりやすさ | P(A) = 3/6 = 1/2 |
確率の性質:
- (確率は0%〜100%の間にある。マイナスや100%超えはない)
- (何かは必ず起きる:サイコロは必ず1〜6のどれかが出る)
- (絶対に起こらないことの確率はゼロ)
余事象
「6が出ない確率は?」——「6が出る確率 はわかるから、そこから引けばよい」という考え方が余事象です。
事象 A が起こらない事象を余事象といい、(Aバー)と書きます。
例:サイコロで6が出る確率 なら、6が出ない確率
「○○でない確率」を求めるときは余事象を使うと計算が楽になります。特に「少なくとも1回○○が起きる確率」は「1 − 一度も○○が起きない確率」と考えると簡単になることが多いです。
ルーレットシミュレーション
理論確率と実験確率(実際に試した結果)の関係を体感しましょう。ルーレットを回し続けると、各色の出現割合が理論値に近づいていきます。「クリックしてスピン!」を押して何度も回してみてください。
var spinning = false;
var angle = 0;
var spinSpeed = 0;
var counts = [0, 0, 0, 0];
var total = 0;
var lastResult = -1;
var sectors = [
{ label: '赤', color: '#ef4444', prob: 0.4 },
{ label: '青', color: '#3b82f6', prob: 0.3 },
{ label: '緑', color: '#22c55e', prob: 0.2 },
{ label: '黄', color: '#f59e0b', prob: 0.1 }
];
var angles = [];
var cumAngle = 0;
for (var s = 0; s < sectors.length; s++) {
angles.push(cumAngle);
cumAngle += sectors[s].prob * Math.PI * 2;
}
angles.push(Math.PI * 2);
function getSector(a) {
var norm = ((a % (Math.PI * 2)) + Math.PI * 2) % (Math.PI * 2);
for (var i = 0; i < sectors.length; i++) {
var start = angles[i];
var end = angles[i + 1];
if (norm >= start && norm < end) return i;
}
return 0;
}
document.addEventListener('click', function() {
if (!spinning) {
spinning = true;
spinSpeed = 0.15 + Math.random() * 0.2;
}
});
function loop() {
ctx.clearRect(0, 0, W, H);
if (spinning) {
angle += spinSpeed;
spinSpeed *= 0.985;
if (spinSpeed < 0.002) {
spinning = false;
lastResult = getSector(-angle + Math.PI / 2);
counts[lastResult]++;
total++;
spinSpeed = 0;
}
}
var cx = 160, cy = 170, r = 130;
for (var i = 0; i < sectors.length; i++) {
var sa = angles[i] + angle;
var ea = angles[i + 1] + angle;
ctx.fillStyle = sectors[i].color;
ctx.beginPath();
ctx.moveTo(cx, cy);
ctx.arc(cx, cy, r, sa, ea);
ctx.closePath();
ctx.fill();
ctx.strokeStyle = '#0d1117';
ctx.lineWidth = 2;
ctx.stroke();
var midA = (sa + ea) / 2;
ctx.fillStyle = '#fff';
ctx.font = 'bold 14px sans-serif';
ctx.textAlign = 'center';
ctx.fillText(sectors[i].label, cx + Math.cos(midA) * r * 0.65, cy + Math.sin(midA) * r * 0.65 + 5);
}
ctx.fillStyle = '#e2e8f0';
ctx.beginPath();
ctx.moveTo(cx, cy - r - 6);
ctx.lineTo(cx - 8, cy - r + 10);
ctx.lineTo(cx + 8, cy - r + 10);
ctx.closePath();
ctx.fill();
ctx.fillStyle = '#1e293b';
ctx.beginPath();
ctx.arc(cx, cy, 12, 0, Math.PI * 2);
ctx.fill();
var tableX = 330, tableY = 40;
ctx.fillStyle = '#e2e8f0';
ctx.font = 'bold 13px sans-serif';
ctx.textAlign = 'left';
ctx.fillText('結果', tableX, tableY);
ctx.fillText('実験', tableX + 60, tableY);
ctx.fillText('理論', tableX + 120, tableY);
for (var j = 0; j < sectors.length; j++) {
var ty = tableY + 28 + j * 28;
ctx.fillStyle = sectors[j].color;
ctx.fillRect(tableX - 4, ty - 14, 14, 14);
ctx.fillStyle = lastResult === j ? '#fbbf24' : '#e2e8f0';
ctx.font = (lastResult === j ? 'bold ' : '') + '13px monospace';
ctx.fillText(sectors[j].label, tableX + 14, ty - 2);
var emp = total > 0 ? (counts[j] / total * 100).toFixed(1) : '0.0';
ctx.fillStyle = '#e2e8f0';
ctx.fillText(emp + '%', tableX + 60, ty - 2);
ctx.fillStyle = '#64748b';
ctx.fillText((sectors[j].prob * 100).toFixed(0) + '%', tableX + 120, ty - 2);
}
ctx.fillStyle = '#94a3b8';
ctx.font = '12px sans-serif';
ctx.textAlign = 'left';
ctx.fillText('試行回数: ' + total, tableX, tableY + 160);
if (!spinning && total === 0) {
ctx.fillStyle = '#fbbf24';
ctx.font = '13px sans-serif';
ctx.textAlign = 'center';
ctx.fillText('クリックしてスピン!', cx, cy + r + 24);
}
requestAnimationFrame(loop);
}
loop(); 大数の法則
上のシミュレーションで実験を続けると、実験確率が理論確率に近づいていくことが分かります。これを大数の法則(Law of Large Numbers)といいます。
試行回数を増やすほど、実験確率は理論確率に収束する。
数回では大きくずれていても、100回、1000回と重ねると差が縮まっていきます。
これは日常でも感じることがあります——コインを10回投げると「7回表・3回裏」になることもありますが、1000回投げると表と裏はほぼ50%ずつに近づきます。「少ない試行では偏りが大きく、多い試行では偏りが小さくなる」という直感と一致します。
具体的な確率の計算
例題1:カード
52枚のトランプから1枚引く。ハートが出る確率は?
トランプは4種類(ハート・スペード・ダイヤ・クローバー)×13枚=52枚です。ハートは13枚あります。
例題2:サイコロ2個
サイコロを2個投げて、目の合計が7になる確率は?
まず全体の場合の数を数えます。1個目が1〜6、2個目が1〜6で、 通りです。
合計が7の組み合わせ: → 6通り
サイコロ2個の合計で7が最も出やすい(6通り)ことも面白いポイントです。
例題3:余事象の活用
10本のくじ(当たり3本)を1本引くとき、当たらない確率は?
余事象を使えば一発です。
まとめ
- 確率は「好ましい場合の数 ÷ 全体の場合の数」で定義される——サイコロ・カードなど「等しい確からしさ」が前提
- 標本空間 Ω は全結果の集合、事象 はその部分集合(「偶数が出る」など)
- 確率は必ず の範囲に収まる(0%〜100%)
- 余事象:。「○○でない」を求めるときに使う便利な技
- 大数の法則:試行を繰り返すと実験確率は理論確率に近づく。少ない試行の結果だけで判断するのは危険
次回は確率の加法定理と乗法定理——「または」「かつ」の計算規則を学びます。