コンテンツにスキップ

一様分布論

一様分布定理

この章では一様分布定理と呼ばれる今までとは少し趣の異なる極限に関する定理を紹介する。 内容的には高度なものになるので読み物としてみた方がよいかもしれない。

その一様分布定理を述べるために次の用語を定義する。

定義 1 (一様分布列)

各𝑛に対して𝑥𝑛∈[0,1)を満たす数列(𝑥𝑛)𝑛=1∞が[0,1)で一様分布するとは任意の0≤𝑎≤𝑏≤1に対して

lim𝑁→∞1𝑁#{𝑛=1,…,𝑁|𝑎≤𝑥𝑛<𝑏}=𝑏−𝑎

が成り立つことである。 ただし、有限集合𝐴に対して、自然数として定まる元の個数を#𝐴と書く。

この条件は区間[𝑎,𝑏)に入る𝑥𝑛の割合が𝑏−𝑎であるとみなせる。 以降では𝑛=1,…,𝑁をしばしば𝑛≤𝑁と表現する。

注意 2

[0,1)上の数列(𝑥𝑛)𝑛=1∞が一様分布することは、 各𝑛に対して0≤𝑎𝑛≤𝑏𝑛≤1である数列(𝑎𝑛), (𝑏𝑛)であって𝑛→∞で𝑎𝑛→𝑎, 𝑏𝑛→𝑏となるものについて

lim𝑁→∞1𝑁#{𝑛≤𝑁|𝑎𝑛≤𝑥𝑛<𝑏𝑛}=𝑏−𝑎

が成り立つことと同値である。 実際、こちらの方が強い条件になっていて、逆については任意の𝜀>0に対して、ある𝑘=1,2,3,…が存在して任意の自然数𝑛≥𝑘に対して|𝑎𝑛−𝑎|<𝜀, |𝑏𝑛−𝑏|<𝜀が成り立つことから、𝑁=1,2,3,…に対して

|#{𝑛≤𝑁|𝑎𝑛≤𝑥𝑛<𝑏𝑛}−#{𝑛≤𝑁|𝑎≤𝑥𝑛<𝑏}|≤𝑘+#{𝑘<𝑛≤𝑁|𝑎−𝜀≤𝑥𝑛<𝑎+𝜀∨𝑏−𝜀≤𝑥𝑛<𝑏+𝜀}≤𝑘+#{𝑛≤𝑁|𝑎−𝜀≤𝑥𝑛<𝑎+𝜀}+#{𝑛≤𝑁|𝑏−𝜀≤𝑥𝑛<𝑏+𝜀}.

よって、𝑁で割って𝑁→∞とすると右辺は4𝜀に収束する。 𝜀は任意なので、逆がいえた。

[0,1)という区間は実数𝑥の床(整数部分)⌊𝑥⌋を引いた小数部分{𝑥}の属する集合として現れた。 そこで一般の実数列(𝑥𝑛)に対しても小数部分の列({𝑥𝑛})が一様分布するかどうかで一様分布列の概念を導入する。 なお、{𝑥}という記号は集合の記号と紛らわしいがよく使われるので本テキストでも採用し文脈によってどちらの意味か判断される。

注意 3

小数部分の演算について任意の実数𝑥,𝑦に対して、{𝑥}≥{𝑦}である場合は{𝑥−𝑦}={𝑥}−{𝑦}であり、そうでない場合は{𝑥−𝑦}={𝑥}−{𝑦}+1であることに注意する。

以上の準備の下で一様分布定理は次のように表現される。

定理 4 (一様分布定理)

𝛼を無理数で𝛽を実数とするとき、数列({𝛼𝑛+𝛽})𝑛=1∞は一様分布する。

[0,1)の0と1と引っ付けて輪っかのように見なすと、({𝛼𝑛+𝛽})𝑛というのは輪っかをぐるぐるまわる感じになっており回転と呼ばれ𝛼は角度のような役割を果たす。

この定理において𝛼が無理数であることが非常に重要で、例えば𝛼が有理数1𝑝、𝛽=0の場合は𝑛が𝑝増えるともとの位置に戻るため、{𝛼𝑛+𝛽}の取りうる値は{0𝑝,…,𝑝−1𝑝}となり一様分布にはならない。 無理数の場合は表現が正確ではないが分母𝑝が無限大のような状況になっていて、 ({𝛼𝑛+𝛽})𝑛は[0,1)上均等にまんべんなく分布するということを定理は主張している。

一様分布定理と関連の深い話題として次のクロネッカーの稠密定理がある。

定理 5 (クロネッカーの稠密定理)

𝛼を無理数で𝛽を実数とするとき、数列({𝛼𝑛+𝛽})𝑛=1∞は[0,1)で稠密である、 つまり任意の0≤𝑎<𝑏≤1に対して𝑎≤{𝛼𝑛+𝛽}<𝑏を満たす𝑛=1,…が存在する。

一様分布するならば自動的に稠密であるので、クロネッカーの稠密定理は一様分布定理より弱い内容を主張する定理である。 しかしながら、今回の一様分布定理の証明ではクロネッカーの稠密定理を利用するので証明を与える。

証明 (クロネッカーの稠密定理の証明)

まず、𝑁=⌈2𝑏−𝑎⌉とするとある𝑙=0,…,𝑁−1が存在して𝑎≤𝑙𝑁<𝑙+1𝑁≤𝑏とできることに注意する。 この𝑁=1,2,3,…に対して次の議論をする。 つまり区間[0,1)を𝑁等分すると({𝛼𝑛})𝑛=1𝑁+1のうち2つは同じ小区間の中に入り𝑖<𝑗とおく。 このとき𝛼が無理数であることから、0<|{𝛼𝑗}−{𝛼𝑖}|<1𝑁である。 よって、𝑘を𝑗−𝑖とすると0<{𝛼𝑘}<1𝑁または1−1𝑁<{𝛼𝑘}<1であり、 これを何倍かすると𝑎≤𝑙𝑁≤{𝑛𝛼𝑘+𝛽}<𝑙+1𝑁≤𝑏となる𝑛が存在するので稠密性が示された。

一様分布定理の証明はワイルの証明が知られているがここでは別の証明を与える。 まず、次の補題を準備する。

補題 6

(𝑥𝑛)𝑛=1∞を実数列とする。 数列({𝑥𝑛})が一様分布することと 任意の実数𝑎に対して

lim𝑁→∞(1𝑁∑𝑛≤𝑁{𝑥𝑛}−1𝑁∑𝑛≤𝑁{𝑥𝑛+𝑎})=0

が成り立つことは同値である。

証明

まず一様分布であることの定義より、({𝑥𝑛})が一様分布することは任意の0≤𝑏≤1に対して

lim𝑁→∞1𝑁#{𝑛≤𝑁|𝑥𝑛<𝑏}=𝑏

が成り立つことと同値であることに注意する。 実数𝑏に対して、

1𝑁∑𝑛≤𝑁{𝑥𝑛−𝑏}=1𝑁∑{𝑥𝑛}≥𝑏({𝑥𝑛}−{𝑏})+1𝑁∑{𝑥𝑛}<𝑏({𝑥𝑛}−{𝑏}+1)=1𝑁∑𝑛≤𝑁{𝑥𝑛}+1𝑁#{𝑛≤𝑁|𝑥𝑛<𝑏}−𝑏.

ここから補題が成立することがわかる。

証明 (一様分布定理の証明)

0≤𝑎<1と𝜀>0を固定する。 ({𝛼𝑛})𝑛=1∞の稠密性は示されているので、

𝑎≤{𝛼𝑘}<𝑎+𝜀

となる𝑘=1,2,3,…が存在する。 ここで任意の整数𝑛に対して

{𝛼𝑛+𝛽}<{𝛼(𝑛−𝑘)+𝛽+𝑎}+𝜀

を示す。 実際、

{𝛼(𝑛−𝑘)+𝛽+𝑎}={(𝛼𝑛+𝛽)−(𝛼𝑘−𝑎)}≥{𝛼𝑛+𝛽}−{𝛼𝑘−𝑎}

で、𝑎≤{𝛼𝑘}<𝑎+𝜀より、

{𝛼𝑘−𝑎}<{𝛼𝑘}−𝑎<𝜀

から従う。 よって、

∑𝑛≤𝑁{𝛼𝑛+𝛽}−∑𝑛≤𝑁{𝛼𝑛+𝛽+𝑎}=∑𝑛≤𝑘{𝛼𝑛+𝛽}+∑𝑘<𝑛≤𝑁{𝛼𝑛+𝛽}−∑𝑛≤𝑁−𝑘{𝛼𝑛+𝛽+𝑎}−∑𝑁−𝑘<𝑛≤𝑁{𝛼𝑛+𝛽+𝑎}≤𝑘+(𝑁−𝑘)𝜀.

したがって、

lim sup𝑁→∞(1𝑁∑𝑛≤𝑁{𝛼𝑛+𝛽}−1𝑁∑𝑛≤𝑁{𝛼𝑛+𝛽+𝑎})≤𝜀.

また、𝑎−𝜀<{𝛼𝑘+𝛽}≤𝑎として𝑘を取り同様のことをすれば

lim inf𝑁→∞(1𝑁∑𝑛≤𝑁{𝛼𝑛+𝛽}−1𝑁∑𝑛≤𝑁{𝛼𝑛+𝛽+𝑎})≥−𝜀.

よって𝜀は任意であることと補題より一様分布定理が証明された。

次の命題は一様分布する数列に小さな修正を加えても一様分布であることを主張する。

命題 7

(𝑥𝑛), (𝑦𝑛), (𝑐𝑛)を実数列として各𝑛に対して|𝑥𝑛−𝑦𝑛|≤𝑐𝑛が成り立つとする。 ここで(𝑦𝑛)が一様分布して𝑛→∞で𝑐𝑛→0であるならば、(𝑥𝑛)も一様分布する。

証明

任意の実数𝑎と各𝑛に対して、もし{𝑦𝑛+𝑎}−𝑐𝑛≥0ならば

{𝑥𝑛+𝑎}≤{𝑦𝑛+𝑎}+𝑐𝑛

が成り立つことに注意する。 実際、0≤|𝑥𝑛−𝑦𝑛|≤𝑐𝑛≤{𝑦𝑛+𝑎}<1であり、{𝑥𝑛+𝑎}>{𝑦𝑛+𝑎}+𝑐𝑛だとすると𝑐𝑛<1−{𝑦𝑛+𝑎}である。 ここで仮定から𝑦𝑛+𝑎−𝑐𝑛≤𝑥𝑛+𝑎≤𝑦𝑛+𝑎+𝑐𝑛で最左辺と最右辺の整数部分が等しくないとならないので、

{𝑥𝑛+𝑎}={𝑦𝑛+𝑎+𝑐𝑛}={𝑦𝑛+𝑎}+𝑐𝑛

である。 同様にして、もし{𝑦𝑛+𝑎}+𝑐𝑛≤1ならば

{𝑥𝑛+𝑎}≥{𝑦𝑛+𝑎}−𝑐𝑛

が成り立つ。 以上のことから、

|∑𝑛≤𝑁{𝑥𝑛+𝑎}−∑𝑛≤𝑁{𝑦𝑛+𝑎}|≤∑𝑛≤𝑁𝑐𝑛+∑{𝑦𝑛+𝑎}<𝑐𝑛∨{𝑦𝑛+𝑎}≥1−𝑐𝑛|{𝑥𝑛+𝑎}−{𝑦𝑛+𝑎}|≤∑𝑛≤𝑁𝑐𝑛+#{𝑛≤𝑁|{𝑦𝑛+𝑎}<𝑐𝑛}+#{𝑛≤𝑁|{𝑦𝑛+𝑎}≥1−𝑐𝑛}

となり、𝑁で割って𝑁→∞とすると、lim𝑛→∞𝑐𝑛=0よりlim𝑁→∞1𝑁∑𝑛≤𝑁𝑐𝑛=0であること(<t_average_conv>)と(𝑦𝑛+𝑎)が一様分布することから右辺は0に収束する。 ここから(𝑥𝑛)は(𝑦𝑛)と同様に一様分布することがわかる。

また、本テキストでは扱わないが積分を用いれば、一様分布の内容から次の拡張が得られる。

命題 8

𝑓を[0,1)上の有界な実数値関数で𝑓(1)=𝑓(0)と拡張したときに𝑓は[0,1]上(リーマン)積分可能とする。 このとき[0,1)上の一様分布する数列(𝑥𝑛)𝑛=1∞に対して

lim𝑁→∞1𝑁∑𝑛≤𝑁𝑓(𝑥𝑛)=∫01𝑓(𝑥)d𝑥

が成り立つ。

注意 9

一様分布することの定義は𝑓が次の区間指示関数

𝑓(𝑥)=𝜒[𝑎,𝑏)(𝑥)={1(𝑥∈[𝑎,𝑏)),0(𝑥∉[𝑎,𝑏))

の場合に式 (0.2) が成り立つということである。

証明

𝜀>0を固定する。 リーマン積分可能であることから𝑓に対して、いくつかの区間指示関数の定数倍の和であって

𝑓−(𝑥)≤𝑓(𝑥)≤𝑓+(𝑥)∀𝑥∈[0,1],∫01(𝑓+(𝑥)−𝑓−(𝑥))d𝑥<𝜀

を満たす関数𝑓−, 𝑓+が存在する。 (𝑥𝑛)は一様分布するので区間指示関数の定数倍の和𝑓−, 𝑓+に対して式 (0.2) が成り立つことに注意して、

lim inf𝑁→∞1𝑁∑𝑛≤𝑁𝑓(𝑥𝑛)≥lim𝑁→∞1𝑁∑𝑛≤𝑁𝑓−(𝑥𝑛)=∫01𝑓−(𝑥)d𝑥≥∫01𝑓(𝑥)d𝑥−𝜀,lim sup𝑁→∞1𝑁∑𝑛≤𝑁𝑓(𝑥𝑛)≤lim𝑁→∞1𝑁∑𝑛≤𝑁𝑓+(𝑥𝑛)=∫01𝑓+(𝑥)d𝑥≤∫01𝑓(𝑥)d𝑥+𝜀.

ここで𝜀は任意なので、一般の𝑓に対しても式 (0.2) が成り立つことがわかった。

注意 10

今回の一様分布定理の証明では直接式 (0.1) を、つまり区間指示関数𝑓に対して式 (0.2) を証明したが、 ワイルの方法は最初に和の計算ができる𝑓(𝑥)=exp(2𝜋𝑖𝑘𝑥)(𝑘は0でない整数)に対して証明して、連続関数に拡張して区間指示関数と進めていく。 この証明法は複素数値の関数の積分やフーリエ解析の知識が必要になるため本テキストではこれ以上触れないが、様々な発展性があり重要である。 一方で今回の証明は<r_z15> を参考にした。

一様分布定理の応用:先頭の位の数

一様分布定理の「小数部分」が登場する話題が先頭の位の数である。 例えば𝑛=1,2,3,…に対して2𝑛の先頭の位の数𝑎𝑛を考えてみよう。 2𝑛を並べて書き出すと

2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768, 65536, 131072, 262144, 524288, 1048576, …

なのでその先頭の位の数𝑎𝑛は

2, 4, 8, 1, 3, 6, 1, 2, 5, 1, 2, 4, 8, 1, 3, 6, 1, 2, 5, 1, …

となる。

この数列の中で数字𝑑=1,2,3,4,5,6,7,8,9が現れる頻度を計算するときに活躍するのが一様分布定理である。 なお、上に列挙した範囲では𝑎𝑛は2,4,8,1,3,6,1,2,5,1の繰り返しに見えるが実際には246=70368744177664なので𝑎𝑛は7や9の値を取りうることに注意する。

一般に正の整数(または正の実数)𝑦について桁数を𝑙∈ℤ、先頭の位の数を𝑑=1,…,9とすると

𝑑×10𝑙−1≤𝑦<(𝑑+1)×10𝑙−1

なので、10を底とする対数(常用対数)をとると

log10𝑑≤log10𝑦−(𝑙−1)<log10(𝑑+1)

となる。 ここから𝑦の最上位の数𝑎が𝑑となる条件は

log10𝑑≤{log10𝑦}<log10(𝑑+1)

となることであり、𝑥∈[0,1)に対して関数𝐷の値をlog10𝑑≤𝑥<log10(𝑑+1)の場合に𝐷(𝑥)=𝑑として定義すると 𝑎=𝐷({log10𝑦})となる。

2𝑛の問題に戻ると

𝑎𝑛=𝐷({𝑛log102})

である。 ここでlog102は無理数なので、{𝑛log102}は[0,1)上一様分布する。 𝑎𝑛のうち𝑑=1,…,9の割合を

lim𝑁→∞1𝑁#{𝑛≤𝑁|𝑎𝑛=𝑑}

として考えると、この値は一様分布定理より

lim𝑁→∞1𝑁#{𝑛≤𝑁|𝑎𝑛=𝑑}=lim𝑁→∞1𝑁#{𝑛≤𝑁|log10𝑑≤{𝑛log102}<log10(𝑑+1)}=log10(𝑑+1)−log10𝑑

となることがわかる。 また、𝑎𝑛の期待値に相当する

lim𝑁→∞1𝑁∑𝑛≤𝑁𝑎𝑛

は

lim𝑁→∞1𝑁∑𝑛≤𝑁𝑎𝑛=lim𝑁→∞1𝑁∑𝑛≤𝑁𝐷({𝑛log102})=∫01𝐷(𝑥)d𝑥=9−log109!

である。 以上の値を計算しまとめたのが次の表 1 である。

表 1: 先頭の位の数の分布

この話題の興味深いところは一様分布すれば底2は別の数(3や4など常用対数が無理数になる数)でも同じ値になることである。 さらには2𝑛の代わりにフィボナッチ数の列𝐹𝑛でも割合や期待値は同じ値になる。 なお、フィボナッチ数は

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, …

でその最上位の位の数は

1, 1, 2, 3, 5, 8, 1, 2, 3, 5, 8, 1, 2, 3, 6, 9, 1, 2, 4, 6, 1, 1, …

である。

これはフィボナッチ数の一般項が

𝐹𝑛=15((1+52)𝑛−(1−52)𝑛)

のように計算され、主要な部分の底1+52の常用対数が無理数であることによる。 より詳しくは𝛼=1+52, 𝛽=1−52とすると、 任意の𝑥>−1に対して不等式log(1+𝑥)≤𝑥が成り立つことに注意して、

|log10𝐹𝑛−(𝑛log10𝛼−log105)|≤log10(1+|𝛽𝛼|𝑛)≤1log(10)|𝛽𝛼|𝑛

で、(𝑛log10𝛼−log105)𝑛は一様分布し、lim𝑛→∞|𝛽𝛼|𝑛=0なので、(log10𝐹𝑛)𝑛も一様分布することがわかる。

このように様々な数列の最上位の位の数は表 1 で示されたある特定の分布に従う。 このことはより複雑な機構によって決まると考えられる現実世界の様々な数にもみられてベンフォードの法則と呼ばれている。