雑記:1つの一様乱数から2つの独立な一様乱数ができる

2024-03-11 この記事で示そうとしたことをまとめた PDF が以下です。
20240309_asympstat.pdf - Google ドライブ



お気付きの点がありましたらご指摘いただけますと幸いです。

[1] の 99 ページに以下のようにありますね。U区間 [0, 1] の値を取る一様乱数です。

It is possible to produce two independent uniform [0, 1] variables U_1 and U_2 from one given [0, 1] variable U. (For instance, construct U_1 and U_2 from the even and odd numbered digits in the decimal expansion of U.)
つまり、1つの一様乱数 U から2つの独立な一様乱数 U_1, U_2 がつくれると。つくり方の一例としては、 U の小数点以下の奇数番目の数をとって詰めて U_1 とし、同様に偶数番目をとって U_2 にするんですね。例えば以下でしょうか。
  •  U = 0.12345678 \cdots だったら、 U_1, U_2 を以下のようにとる。
    •  U_1 = 0.1357 \cdots
    •  U_2 = 0.2468 \cdots
この U_1, U_2 も一様乱数であり、互いに独立というのは直感的にはそうでしょう。元の U が一様乱数である以上、「奇数番目はこの並びになりやすい」などということはないでしょうし、「奇数番目がこの並びなら偶数番目はこの並びになりやすい」ということもないでしょう。しかし、本当にそうなるのか、[1] には何も説明がありませんね。ここは私が証明してみましょう。

いま示したいことは以下ですね。

補題〈 1つの一様乱数から2つの独立な一様乱数ができる 〉
U[0, 1] 上の一様分布にしたがう確率変数とする。いま、U の小数点以下の奇数番目の数をつなげて詰めて U_1 を、同様に偶数番目の数をつなげて詰めて U_2 をつくる。このとき、U_1U_2 も一様分布にしたがう確率変数であり、かつ、互いに独立である。
……まずは U_1, U_2 の分布を知りたいですよね。例えば、\mathrm{P}(U_1 < 0.5) がいくらになるのか考えてみましょう。 U_1 < 0.5 という事象を  U についての事象に翻訳しないとわかりませんね。U がどうあるべきかを知りたいので、 U_1 < 0.5 をどの桁の数字がどうあるべきかでいい直すと「U_1 \,の小数第1位が5未満」ですね。逆に、これだけです。U_1 の他の桁への要請はありません。であれば……U_1 に小数第1位を供給するのは U の小数第1位ですから、U への要請も「U \,の小数第1位が5未満」だけです。そうなると
 \mathrm{P}(U_1 < 0.5) = \mathrm{P}( U_1 \,の小数第1位が5未満) = \mathrm{P}( U \,の小数第1位が5未満) = \mathrm{P}(U < 0.5) = 0.5
一様分布の確率になりますね。というか、同じ論理で以下までいえますね。
 0 < a < 1 である a の小数点以下が1桁のとき、 \mathrm{P}(U_1 < a) =  \mathrm{P}(U < a) = a

では、小数点以下が2桁のときはどうなるでしょうか。\mathrm{P}(U_1 < 0.53) を考えてみましょう。 さっきと同様に、 U_1 < 0.53 をどの桁の数字がどうあるべきかでいい直してみましょう。

 \quad \mathrm{P}(U_1 < 0.53) = \mathrm{P}( U_1 \,の小数第1位が5未満、または、小数第1位が5かつ小数第2位が3未満)
 \quad  \qquad \qquad \qquad = \mathrm{P}( U \,の小数第1位が5未満、または、小数第1位が5かつ小数第3位が3未満)
 \quad  \qquad \qquad \qquad = \mathrm{P}( U \,の小数第1位が5未満) \, + \, \mathrm{P}( U \, の小数第1位が5かつ小数第3位が3未満) \quad \text{★}
 \begin{split} \quad \qquad \qquad \quad \; \, \, &= \mathrm{P}(U < 0.5) \\ & \quad + \mathrm{P}(0.500 \leqq U < 0.503) + \mathrm{P}(0.510 \leqq U < 0.513) \\ & \quad + \mathrm{P}(0.520 \leqq U < 0.523) + \mathrm{P}(0.530 \leqq U < 0.533) \\ & \quad + \mathrm{P}(0.540 \leqq U < 0.543) + \mathrm{P}(0.550 \leqq U < 0.553) \\ & \quad + \mathrm{P}(0.560 \leqq U < 0.563) + \mathrm{P}(0.570 \leqq U < 0.573) \\ & \quad + \mathrm{P}(0.580 \leqq U < 0.583) + \mathrm{P}(0.590 \leqq U < 0.593)  \\ &= 0.5 + 10 \times 0.003  \\ &= 0.53 \end{split}

やはり一様分布の確率になりました! 小数点以下が2桁になると、必然的にどの桁がどうあるべきかへの要請が「A または B」になりますね。そして、この「A または B」を U についての事象に翻訳すると排反事象ですから確率の和となり ( \text{★})、さらにこの第 2 項は U 上の 10 個の区間に分裂しますね。なぜなら、「小数第1位が5かつ小数第3位が3未満」とは「小数第1位が5かつ小数第2位が0かつ小数第3位が3未満、または、小数第1位が5かつ小数第2位が1かつ小数第3位が3未満、または、……」であるからです。

こうなると、小数点以下の桁数が3のときにも拡張できそうですね。つまり、以下です。

 \begin{split} \quad \mathrm{P}(U_1 < 0.534) &= \mathrm{P}(U < 0.5) \\ & \quad + 10 \times \mathrm{P}(0.500 \leqq U < 0.503) \quad \text{★} \\ & \quad + 10^2 \times \mathrm{P}(0.50300 \leqq U < 0.50304)  \quad \text{★★} \\ &= 0.5 + 10 \times 0.003 + 10^2 \times 0.00004  \\ &= 0.534 \end{split}

 \text{★} では小数第2位が本当は10通りあるので係数 10 が出てきて、 \text{★★} では小数第2位も小数第4位も10通りあるので係数 10^2 が出てくるというわけです。区間幅が同じなら確率が同じなので便宜上小数第2位や小数第4位が 0 のときの区間を代表に書いてしまっていますが……。

これはさらに一般化できそうですね。いま、 0 < a < 1 である a の小数第 k 位の数を a_k とします。また便宜上 a_0=0 とします。そうすると、a の小数点以下の桁数が有限の  n ならば以下になります。

 \begin{split} \quad \displaystyle \mathrm{P}(U_1 < a) &=\mathrm{P} \left( U_1 < \sum_{k=1}^n 10^{-k} a_k \right) \\ &= \sum_{k=1}^n 10^{k - 1} \mathrm{P} \left(\sum_{k'=0}^{k-1} 10^{-2k'+1} a_{k'} \leqq U < \sum_{k'=0}^{k} 10^{-2k'+1} a_{k'} \right)  \quad \text{★★★} \\ &= \sum_{k=1}^n 10^{k - 1} 10^{-2k+1} a_k \\ &= \sum_{k=1}^n 10^{-k} a_k \\ &= a \end{split}

さらに、 \text{★★★} にあらわれる U 上の区間たちは本当は互いに共通部分をもちません。であれば、一様測度の可算加法性より、「互いに共通部分がない無数の区間の和の確率」は「各区間の確率の和の極限」に等しいので、a の小数点以下の桁数が無限であっても以下が成り立ちます。よって U_1 は一様乱数です。

 \quad \displaystyle \mathrm{P}(U_1 < a) =\mathrm{P} \left( U_1 < \lim_{n \to \infty} \sum_{k=1}^n 10^{-k} a_k \right) = \lim_{n \to \infty} \sum_{k=1}^n 10^{-k} a_k = a

そして U_2 も一様乱数になりますね。U_1 とは  \text{★★★} の部分がやや異なりますが、一様分布にしたがうことが確認できます。

 \begin{split} \quad \displaystyle \mathrm{P}(U_2 < a) &=\mathrm{P} \left( U_2 < \sum_{k=1}^n 10^{-k} a_k \right) \\ &= \sum_{k=1}^n 10^{k} \mathrm{P} \left(\sum_{k'=0}^{k-1} 10^{-2k'} a_{k'} \leqq U < \sum_{k'=0}^{k} 10^{-2k'} a_{k'} \right)  \quad \text{★★★'} \\ &= \sum_{k=1}^n 10^{k} 10^{-2k} a_k \\ &= \sum_{k=1}^n 10^{-k} a_k \\ &= a \end{split}

U_1U_2 も一様乱数であることは確認できたので、これらが互いに独立であることを示しましょう。つまり、 0 < a, b < 1 であるどんな a, b についても、\mathrm{P}(U_1 < a, U_2 < b) =\mathrm{P}(U_1 < a) \mathrm{P}(U_2 < b) =ab であることを示しましょう。

しかし、どうすればいいのやら。具体的な例から考えてみますか。\mathrm{P}(U_1 < 0.34, \, U_2 < 0.56) を考えると、ab も小数点以下が2桁なので、どちらも U のどの桁がどうあるべきかに「A または B」というタイプの要請をしてきます。なので、U への要請は 4 つに分かれます。それでこの場合は結局、独立な 2 つの一様分布の同時分布になります。

 P(U_1 < 0.34, U_2 < 0.56)
 
 = P(U_1 < 0.3, U_2 < 0.5)
   + P(U_1 < 0.3, 0.5 ≦ U_2 < 0.56)
   + P(0.3 ≦ U_1 < 0.34, U_2 < 0.5)
   + P(0.3 ≦ U_1 < 0.34, 0.5 ≦ U_2 < 0.56)
 
 =   P(U の 小数第1位が3未満 かつ 小数第2位が5未満)
   + P(U の 小数第1が3未満 かつ 小数第2位が5 かつ 小数第4位が6未満)
   + P(U の 小数第1位が3 かつ 小数第2位が5未満 かつ 小数第3位が4未満)
   + P(U の 小数第1位が3 かつ 小数第2位が5 かつ 小数第3位が4未満 かつ 小数第4位が6未満)
 
 =   P(0.00 ≦ U < 0.05) + P(0.10 ≦ U < 0.15) + P(0.20 ≦ U < 0.25)

   + 10 * ( P(0.0500 ≦ U < 0.0506) + P(0.1500 ≦ U < 0.1506) + P(0.2500 ≦ U < 0.2506) )

   + P(0.300 ≦ U < 0.304) + P(0.310 ≦ U < 0.314) + P(0.320 ≦ U < 0.324)
   + P(0.330 ≦ U < 0.334) + P(0.340 ≦ U < 0.344)

   + P(0.3500 ≦ U < 0.3506) + P(0.3510 ≦ U < 0.3516) 
   + P(0.3520 ≦ U < 0.3526) + P(0.3530 ≦ U < 0.3536)
 
 = 3 * 0.05 + 10 * 3 * 0.0006 + 5 * 0.004 + 4 * 0.0006
 
 = 0.3 * 0.5 + 0.3 * 0.06 + 0.5 * 0.04 + 0.04 * 0.06

 = 0.3 * 0.56 + 0.04 * 0.56

 = 0.34 * 0.56

ではこれを任意の桁数に一般化して……えっと……あれ……一般の場合も上の要領で導出しようとすると煩雑になりそうですね……。

こうしたら?

0 \leqq a, b \leqq 1 を小数点以下の桁数が有限である小数とする。このとき、小数点以下の桁数が大きい方の桁数を N として d = 10^{-N} とする。また、2つの引数の小数以下を交互につなぐ関数  f(x, y) を定義する。例えば、 f(0.1234, 0.56) = 0.1526304 である。
このとき、 \mathrm{P}(U_1 < a, \, U_2 < b) は以下となる。
 \begin{split} \mathrm{P}(U_1 < a, \, U_2 < b) &= \mathrm{P} \left(  \bigcup_{n=0}^{a/d-1} \bigcup_{m=0}^{b/d-1} ( nd \leqq U_1 < nd + d, \, md \leqq U_2 < md + d ) \right) \\ &= \mathrm{P} \left(  \bigcup_{n=0}^{a/d-1} \bigcup_{m=0}^{b/d-1} \bigl( f(nd, md) \leqq U < f(nd, md) + d^2 \bigr) \right) \\ &= \sum_{n=0}^{a/d-1} \sum_{m=0}^{b/d-1} \mathrm{P} \bigl( f(nd, md) \leqq U < f(nd, md) + d^2 \bigr) \\ &= (a/d)(b/d)d^2 \\ &= ab \end{split}

なんと。すっきりしましたね。ああ、そのように区切っておけば、相当する U 上の区間は小数点以下 2N 桁まで固定され、それより右の桁が任意であるような、幅 d^2 の区間に一律になりますね。そうか、私は、「U_1 の何桁目が何で U_2 の何桁目が何である」という境界で区切っていましたが、そのためにU上の区間の大きさはばらついたりあまつさえ分裂したりしていたので、できうる限り細かく区切っておいた方が扱いやすかったんですね。

小数点以下の桁数が無限でも成り立つことを後でかく → PDF にかいたが副部長のアプローチでは結局かいていない