#2 【頭の体操】 乱数 ✕ 確率: 2つの一様乱数の大小の確率
アルゴリズムを実装する際によくお世話になる乱数。今回はこの乱数を用いて、頭の体操として確率計算をしてみましょう。
※ 本文は全て読めますが、「投銭」として最後に購入ボタンを設定していますので、気に入っていただけましたら応援宜しくお願いします。
それでは、以下の問を考えてみてください。
【問題】
答えは、0.3 (30%) になります。直観的にイメージできたでしょうか?
解析解が求められなかったとしても、実装でサンプリングをしてみると、0.3に近い解が得られることが分かるかと思います。
では解説に入っていきます。
【解説】
まず、求めるべき確率が以下のように表せることに着目しましょう。
「片方の乱数がある値 r を取った時、もう一方がその乱数より大きくなる確率」を、取り得るすべての r に対して計算している式になります。また、領域Dを上式で表しているのは
であるためです。よって、一様分布の確率密度関数を考えると、
であることから、求めるべき項は下式のように計算できます。
30%という答えが得られました。
サンプリングの実装をしてみても、30%くらいになりそうだということが分かります。
import numpy as np
np.random.seed(1234)
N = 1000000
c = 0
for _ in range(N):
u1 = np.random.uniform(0, 30)
u2 = np.random.uniform(0, 50)
if u1 > u2:
c += 1
print(c / N) # => 0.299949
今回は2つの一様乱数を考えてみましたが、次回は3つの一様乱数で考えてみましょう!
※ 内容は以上が全てです。これ以降文章はありませんが、「投銭」として最後に購入ボタンを設定しています。気に入っていただけましたら応援宜しくお願いします。
ここから先は
0字
¥ 110
この記事が気に入ったらサポートをしてみませんか?