1 有限状態生成器
定義 1.1.
- Sを空でない有限集合、Zを集合とし、T:S→SとO:S→Zを写像とする。三つ組(S,T,O)を 有限状態生成器 (finite-state generator) といい、Sを状態集合、Tを遷移、Oを出力写像という。s0∈Sに対してsj:=Tj(s0)、zj:=O(sj)(j∈N≥0)と置き、s0を 初期状態 (initial state)、(sj)j≥0を 状態列 (state sequence)、(zj)j≥0を 出力列 (output sequence) という。
- Aを集合とし、(xj)j≥0をAの元の列とする。整数μ≥0とλ≥1が、任意の整数j≥μに対してxj+λ=xjを満たすとき、(xj)はμ以降で周期λをもつという。あるμ以降である周期をもつ列を 最終周期的 (eventually periodic) といい、0以降で周期をもつ列を 純周期的 (purely periodic) という。最終周期的な列に対し、あるμ以降の周期となる整数λ≥1の最小値を、その列の 最小周期 (minimal period) という。
命題 1.2.(S,T,O)を有限状態生成器、Oの終域をZとし、s0∈Sからの状態列を(sj)、出力列を(zj)とする。
- 整数μ≥0とλ≥1の組であって、s0,…,sμ+λ−1が相異なり、かつsμ+λ=sμを満たすものがただ一つ存在する。この組はμ+λ≤∣S∣を満たす。
- (1)の組(μ,λ)と整数j,k≥0について、sj=skであるための必要十分条件は、j=kであるか、j,k≥μかつλ∣j−kであることである。
- 状態列は(1)のμ以降で周期λをもつ。整数μ′≥0以降で状態列が周期λ′をもつならば、μ≤μ′かつλ∣λ′である。特にλは状態列の最小周期である。
- Tが全単射ならば、(1)のμは0であり、状態列は純周期的である。
- 出力列は(1)のμ以降で周期λをもち、出力列の最小周期はλを割る。
- (S′,T′,O′)をO′:S′→Zを満たす有限状態生成器とし、写像φ:S→S′がT′∘φ=φ∘TとO′∘φ=Oを満たすとする。(S′,T′,O′)の初期状態φ(s0)からの出力列を(zj′)とすると、任意のj≥0に対してzj′=zjが成り立つ。特に、遷移、出力写像、初期状態が等しい二つの有限状態生成器の出力列は一致する。
証明.(1)を示す。s0,…,s∣S∣はSの元の∣S∣+1項の列であるから、鳩の巣原理により、ある0≤i<n≤∣S∣に対してsi=snが成り立つ。sn∈{s0,…,sn−1}を満たす最小の正整数nをn0とすると、n0≤∣S∣であり、n0の最小性によりs0,…,sn0−1は相異なる。sn0=sμを満たすμ<n0はただ一つであり、λ:=n0−μと置けば、組(μ,λ)は二条件を満たし、μ+λ=n0≤∣S∣である。逆に組(μ′,λ′)が二条件を満たすとし、n:=μ′+λ′と置く。sn=sμ′であるからsn∈{s0,…,sn−1}である。1≤n′<nならばs0,…,sn′は相異なるから、sn′∈/{s0,…,sn′−1}である。したがってn=n0であり、sμ′=sn0かつμ′<n0であるからμ′=μ、λ′=λである。
(2)を示す。任意の整数i≥μに対してsi+λ=siであることを、iについての帰納法で示す。i=μのときは(1)の等式である。si+λ=siならばsi+1+λ=T(si+λ)=T(si)=si+1である。整数j≥0に対し、j<μのときρ(j):=jと置き、j≥μのときj−μをλで割った余りをrとしてρ(j):=μ+rと置く。j≥μならば、ある整数t≥0に対してj=ρ(j)+tλであり、上の等式をt回適用してsj=sρ(j)を得る。j<μならばsj=sρ(j)は定義から成り立つ。ρ(j)とρ(k)は{0,…,μ+λ−1}に属し、s0,…,sμ+λ−1は相異なるので、sj=skはρ(j)=ρ(k)と同値である。j<μならばρ(j)<μであり、j≥μならばρ(j)≥μであるから、ρ(j)=ρ(k)は、j=k<μであるか、j,k≥μかつλ∣j−kであることと同値である。
(3)を示す。(2)の証明で示した等式により、状態列はμ以降で周期λをもつ。状態列がμ′以降で周期λ′をもつとすると、sμ′+λ′=sμ′かつμ′+λ′=μ′であるから、(2)によりμ′≥μかつλ∣λ′である。λ∣λ′からλ≤λ′であるので、λは状態列の最小周期である。
(4)を示す。Tが全単射であり、μ≥1であると仮定する。T(sμ−1+λ)=sμ+λ=sμ=T(sμ−1)であり、Tは単射であるから、sμ−1+λ=sμ−1が成り立つ。他方、μ−1<μ−1+λ≤μ+λ−1であり、s0,…,sμ+λ−1は相異なるから、sμ−1+λ=sμ−1である。この二つは両立しないので、μ=0である。
(5)を示す。j≥μならばzj+λ=O(sj+λ)=O(sj)=zjである。出力列の最小周期をλzとし、出力列がμz以降で周期λzをもつとする。ν:=max{μ,μz}と置き、λ=aλz+r、a≥0、0≤r<λzと表す。j≥νならば、j+r≥μzであるから周期λzをa回用いてzj+r=zj+r+aλz=zj+λであり、j≥μであるからzj+λ=zjである。r≥1ならば出力列はν以降で周期rをもち、r<λzはλzの最小性と両立しない。したがってr=0であり、λz∣λである。
(6)を示す。sj′:=T′j(φ(s0))と置く。φ(sj)=sj′をjについての帰納法で示す。j=0のときは定義である。φ(sj)=sj′ならばφ(sj+1)=φ(T(sj))=T′(φ(sj))=T′(sj′)=sj+1′である。したがってzj′=O′(sj′)=O′(φ(sj))=O(sj)=zjである。S′=S、T′=T、O′=O、φ=idSの場合が最後の主張である。▨
命題 1.4.(S,T,O)を有限状態生成器とし、Oの終域Zは2個以上の元をもつRの有限部分集合であるとする。(Ω,F,P)を確率空間、σをSに値をとる確率変数とし、Zj:=O(Tj(σ))(j≥0)と置く。整数k≥1が∣Z∣k>∣S∣を満たすならば、Z0,…,Zk−1が相互独立であり、かつ各ZjがZ上の一様分布に従う、ということは成り立たない。
証明. 写像Φ:S→ZkをΦ(s):=(O(s),O(T(s)),…,O(Tk−1(s)))で定める。Φの像は高々∣S∣個の元からなり、∣Zk∣=∣Z∣k>∣S∣であるから、Φの像に属さないw=(w0,…,wk−1)∈Zkが存在する。(Z0,…,Zk−1)=Φ(σ)であるから、P(Z0=w0,…,Zk−1=wk−1)=0である。他方、Z0,…,Zk−1が相互独立であり、各ZjがZ上の一様分布に従うならば、§E11.7 命題 1.2を一点集合{w0},…,{wk−1}へ適用して、P(Z0=w0,…,Zk−1=wk−1)=∣Z∣−k>0となる。この二つの値は両立しないので、主張が成り立つ。▨
2 合同法
命題 2.1.m≥2を整数とし、Um:={s∈Z∣0≤s≤m−1, gcd(s,m)=1}と置く。aをgcd(a,m)=1を満たす整数とし、s∈Umに対してasをmで割った余りをTa(s)と置く。
- TaはUmをUmへ写す。任意のs0∈Umに対し、有限状態生成器(Um,Ta,idUm)のs0からの状態列は純周期的であり、その最小周期はordm(a)である。
- mが素数ならば、ordm(a′)=m−1を満たす整数a′が存在する。mが素数でありordm(a)=m−1ならば、任意のs0∈{1,…,m−1}に対し、状態列の最小周期はm−1であり、s0,…,sm−2は{1,…,m−1}の各元をちょうど一度ずつとる。
証明.(1)を示す。s∈Umならばgcd(as,m)=1であり、Ta(s)≡as(modm)であるからgcd(Ta(s),m)=1であり、Ta(s)∈Umである。d:=ordm(a)と置く。jについての帰納法によりsj≡ajs0(modm)である。0≤j<kとする。gcd(ajs0,m)=1であるからajs0は法mの逆元をもち、ajs0≡aks0(modm)はak−j≡1(modm)と同値である。§A4.12 命題 1.2により、ak−j≡1(modm)はd∣k−jと同値である。sj,sk∈{0,…,m−1}であるから、sj=skはsj≡sk(modm)と同値であり、したがってd∣k−jと同値である。よってs0,…,sd−1は相異なり、sd=s0であるから、命題 1.2 (1)の組は(0,d)である。命題 1.2 (3)により、状態列は0以降で周期dをもつ純周期的な列であり、その最小周期はdである。
(2)を示す。mが素数ならばZ/mZは位数mの体であり、§E8.7 定理 2.1により、その乗法群は位数m−1の巡回群である。その生成元を剰余類とする整数a′をとると、gcd(a′,m)=1であり、a′k≡1(modm)を満たす最小の正整数kは生成元の位数m−1に等しいので、ordm(a′)=m−1である。mが素数ならばUm={1,…,m−1}である。ordm(a)=m−1ならば、(1)により状態列は純周期的で最小周期はm−1であるから、命題 1.2 (3)により命題 1.2 (1)の組は(0,m−1)である。したがってs0,…,sm−2はUmの相異なるm−1個の元であり、Umの各元をちょうど一度ずつとる。▨
例 2.2.m=7とする。
- 31,…,36を7で割った余りは3,2,6,4,5,1であるから、ord7(3)=6である。乗数3、初期状態1の状態列は1,3,2,6,4,5,1,…であり、最小周期は6である。
- 21,22,23を7で割った余りは2,4,1であるから、ord7(2)=3である。乗数2の状態列は、初期状態1からは1,2,4を、初期状態3からは3,6,5を繰り返し、どちらの最小周期も3である。
- s∈{0,…,6}に対して3sを7で割った余りをT(s)と置くと、T(0)=0であり、初期状態0の状態列は0,0,…で、最小周期は1である。0∈/U7であるから、この状態列は命題 2.1 (1)の対象ではない。
例 2.3.S={0,…,15}とし、s∈Sに対して5s+1を16で割った余りをT(s)と置く。初期状態0の状態列は
0,1,6,15,12,13,2,11,8,9,14,7,4,5,10,3,0,…である。s0,…,s15はSの各元をちょうど一度ずつとり、s16=s0であるから、命題 1.2 (1)の組は(0,16)であり、状態列の最小周期は16である。
- 5≡1(mod4)であるから、任意のs∈Sに対してT(s)≡s+1(mod4)であり、sj≡j(mod4)である。出力写像を「sを2で割った余り」とする出力列は0,1,0,1,…で最小周期は2であり、「sを4で割った余り」とする出力列は0,1,2,3,0,…で最小周期は4である。どちらの最小周期も、命題 1.2 (5)のとおり16を割り、16より小さい。
- Jを{0,…,15}に値をとり、その集合上の一様分布に従う確率変数とし、X:=sJ、Y:=sJ+1=T(X)と置く。j↦sjとj↦sj+1はどちらも{0,…,15}からSへの全単射であるから、XとYはどちらもS上の一様分布に従う。他方、T(0)=1であるからP(X=0, Y=0)=0であり、P(X=0)P(Y=0)=1/256と異なるので、XとYは独立でない。
3 有限ビット整数の変換
命題 3.1.
- 整数n≥1とL≥0をL=qn+r、q≥0、0≤r<nと表す。0≤j<nを満たす整数jに対し、{0,…,L−1}のうちnで割った余りがjである元の個数は、j<rならばq+1、j≥rならばqである。
- 整数b≥1に対してM:=2bと置き、整数1≤n≤MをM=qn+r、0≤r<nと表す。Xを{0,…,M−1}に値をとり、その集合上の一様分布に従う確率変数とし、Xをnで割った余りをRとする。0≤j<nを満たす整数jに対して、j<rならばP(R=j)=(q+1)/Mであり、j≥rならばP(R=j)=q/Mである。Rが{0,…,n−1}上の一様分布に従うための必要十分条件はr=0であり、r=0はnが2の冪であることと同値である。
証明.(1)を示す。nで割った余りがjである非負整数は、整数t≥0によるj+tnであり、j+tn≤L−1はtn≤qn+(r−1−j)と同値である。j<rならば0≤r−1−j<nであるから、この不等式はt≤qと同値であり、元の個数はq+1である。j≥rならばj≤n−1から−n≤r−1−j<0であるから、この不等式はt≤q−1と同値であり、元の個数はqである。
(2)を示す。P(R=j)は{0,…,M−1}のうちnで割った余りがjである元の個数をMで割った値であるから、(1)をL=Mに適用して、確率の式を得る。r=0ならば任意のjに対してP(R=j)=q/M=1/nである。r≥1ならばn−1≥rであるから、P(R=0)=(q+1)/M=q/M=P(R=n−1)であり、Rは一様分布に従わない。r=0はn∣2bと同値であり、素因数分解の一意性により、n∣2bはn=2iを満たす整数0≤i≤bが存在することと同値である。n≤Mであるから、後者はnが2の冪であることと同値である。▨
例 3.2.M=16とする。n=3ならば16=5⋅3+1であるから、P(R=0)=6/16、P(R=1)=P(R=2)=5/16である。n=6ならば16=2⋅6+4であるから、0≤j≤3ではP(R=j)=3/16、j=4,5ではP(R=j)=2/16である。M=264、n=3ならば264≡1(mod3)であるからr=1であり、P(R=0)はP(R=1)=P(R=2)より2−64だけ大きい。
証明.B:={L,…,M−1}と置き、0≤j<nに対して、{0,…,L−1}のうちnで割った余りがjである元の集合をCjと置く。L=qnであるから、命題 3.1 (1)により∣Cj∣=qである。整数k≥1と0≤j<nに対して
Ak,j:={X1∈B,…,Xk−1∈B, Xk∈Cj}と置く。相互独立性の定義によりX1,…,Xkは相互独立であり、BとCjは有限集合であるから Borel 集合である。§E11.7 命題 1.2により
P(Ak,j)=P(X1∈B)⋯P(Xk−1∈B)P(Xk∈Cj)=(MM−L)k−1Mq=(1−θ)k−1Mqである。
n≤Mであるからq≥1であり、L≥n≥1であるからθ>0である。0≤1−θ<1であるから、§E11.5 補題 1.1により
k≥1∑j=0∑n−1P(Ak,j)=nMqk≥1∑(1−θ)k−1=θ⋅θ1=1である。事象Ak,j(k≥1, 0≤j<n)は互いに素であり、その和集合はΩ∖Ω∞である。実際、各Xkは{0,…,L−1}∪Bに値をとり、{0,…,L−1}はC0,…,Cn−1の互いに素な和集合であるから、ω∈Ω∖Ω∞はAN(ω),Y(ω)にだけ属し、Ω∞の元はどのAk,jにも属さない。したがってP(Ω∖Ω∞)=1であり、(2)が成り立つ。{N=k, Y=j}は、(k,j)=(1,0)ならばAk,jに等しく、(k,j)=(1,0)ならばA1,0∪Ω∞に等しい。よってNとYは確率変数であり、P(Ω∞)=0からP(N=k, Y=j)=P(Ak,j)であるので、(1)が成り立つ。
(3)を示す。(1)と§E11.5 補題 1.1により、0≤j<nに対して
P(Y=j)=Mqk≥1∑(1−θ)k−1=Mθq=Lq=n1であり、k≥1に対してP(N=k)=n(1−θ)k−1q/M=θ(1−θ)k−1である。したがってP(N=k, Y=j)=P(N=k)P(Y=j)である。
Borel 集合D1,D2⊂Rに対し、NとYは整数値であるから、確率の可算加法性により
P(N∈D1, Y∈D2)=k∈D1∩N≥1∑ j∈D2∩{0,…,n−1}∑P(N=k)P(Y=j)=P(N∈D1)P(Y∈D2)であり、§E11.7 命題 1.2によりNとYは独立である。
(4)を示す。M−LはMをnで割った余りであるからM−L<n≤qn=Lであり、M<2Lからθ>1/2である。L≤Mからθ≤1である。整数i≥0に対してP(N−1=i)=θ(1−θ)iであるから、N−1はGeom(θ)に従う。§E11.5 命題 1.5によりE[N−1]=(1−θ)/θ<∞であるから、非負確率変数N−1は可積分である。§E11.4 命題 1.2によりN=(N−1)+1は可積分であり、
E[N]=θ1−θ+1=θ1=LMである。θ>1/2からE[N]<2である。▨
例 3.4.M=16とする。n=3ならばq=5、L=15、θ=15/16、E[N]=16/15である。n=6ならばq=2、L=12、θ=3/4、E[N]=4/3である。n=9ならばq=1、L=9、θ=9/16、E[N]=16/9である。n=1とn=16ではどちらもL=16、θ=1であり、N=1がほとんど確実に成り立つ。一般にb≥1とn=2b−1+1に対してはq=1、θ=1/2+2−bであるから、任意のc>1/2に対して1/2+2−b<cとなるbがあり、定理 3.3 (4)の下界1/2を1/2より大きい定数で置き換えることはできない。
4 整数から一様格子への変換
証明.(1)を示す。二つの写像は狭義単調増加であり、GbとHbの定義によりそれぞれの像はGbとHbである。最小元と最大元はx=0とx=M−1の値である。0≤k≤M−1に対してP(X/M=k/M)=P((X+1/2)/M=(2k+1)/(2M))=P(X=k)=1/Mである。
(2)を示す。2t≤k<2t+1を満たす整数tをとり、e:=t−cと置く。1≤k<2cから0≤t≤c−1であり、−c≤e≤−1であるからemin≤e≤emaxである。k<2pからt≤p−1であるので、m:=k2p−1−tは整数である。2t≤k<2t+1の各辺に2p−1−tを掛けて2p−1≤m≤2p−1を得る。k/2c=m2e+1−pであるから、k/2cは指数eの正規化数であり、Fに属する。
(3)を示す。0∈Fである。1≤x≤M−1ならば、p≥bのときx<2b≤2pであるから、(2)をc=b、k=xに適用してx/M∈Fを得る。0≤x≤M−1ならば(x+1/2)/M=(2x+1)/2b+1であり、1≤2x+1<2b+1である。p≥b+1のとき2x+1<2b+1≤2pであるから、(2)をc=b+1、k=2x+1に適用して(x+1/2)/M∈Fを得る。▨
例 4.2. binary64 形式の有限数の全体であるF=F(2,53,−1022,1023)を考え、flをFの最近接丸めとする。M:=264と置き、Xを{0,…,M−1}に値をとり、その集合上の一様分布に従う確率変数とする。
- G53⊂FかつH52⊂Fである。
- 整数xが1≤x<253を満たすならば、x/M∈Fであり、fl(x′/M)=x/Mを満たすx′∈{0,…,M−1}はxだけである。特にP(fl(X/M)=x/M)=1/Mである。
- 整数kが252<k<253を満たすとし、yk:=k2−53と置く。yk∈Fであり、∣x−211k∣≤210−1を満たす任意の整数xに対してfl(x/M)=ykである。特にP(fl(X/M)=yk)≥(211−1)/Mであり、fl(X/M)はその値の集合の上の一様分布に従わない。
- fl((M−1)/M)=1である。特に、X/M<1がつねに成り立つにもかかわらず、P(fl(X/M)=1)≥1/Mである。
証明.(1)を示す。Fはp=53、emin=−1022、emax=1023≥0の浮動小数点数系である。b=53はp≥bとemin≤−bを満たし、b=52はp≥b+1とemin≤−(b+1)を満たすので、命題 4.1 (3)によりG53⊂FかつH52⊂Fである。
(2)を示す。1≤x<253であるから、命題 4.1 (2)をc=64、k=xに適用してx/M∈Fを得る。0∈Fであるから、0≤x′<253を満たす任意の整数x′に対してx′/M∈Fであり、§E20.1 定理 2.2 (1)によりfl(x′/M)=x′/Mである。したがって、0≤x′<253を満たす整数x′のうちfl(x′/M)=x/Mを満たすものはxだけである。整数x′が253≤x′≤M−1を満たすとする。命題 4.1 (2)をc=11、k=1に適用して2−11∈Fであり、x′/M≥253/M=2−11である。y∈Fがy<2−11を満たすならば∣y−x′/M∣>∣2−11−x′/M∣であるから、fl(x′/M)≥2−11>x/Mである。したがってfl(x′/M)=x/Mを満たすx′∈{0,…,M−1}はxだけであり、P(fl(X/M)=x/M)=P(X=x)=1/Mである。
(3)を示す。§E20.1 補題 1.2 (1)をe=−1に適用すると
F∩[1/2,1)={m2−53∣m∈Z, 252≤m≤253−1}であるから、yk∈Fである。y∈F∖{yk}とする。y∈[1/2,1)ならばy−ykは2−53の零でない整数倍であり、y<1/2ならば∣y−yk∣>yk−1/2≥2−53、y≥1ならば∣y−yk∣≥1−yk≥2−53であるから、いずれの場合も∣y−yk∣≥2−53である。整数xが∣x−211k∣≤210−1を満たすとし、z:=x/Mと置く。ykM=211kであるから∣z−yk∣=∣x−211k∣/M≤(210−1)2−64<2−54であり、y∈F∖{yk}に対して
∣y−z∣≥∣y−yk∣−∣z−yk∣>2−53−2−54=2−54>∣z−yk∣であるから、fl(z)=ykである。このような整数xは211−1個あり、252<k<253から0<x<Mを満たすので、P(fl(X/M)=yk)≥(211−1)/Mである。他方、(2)をx=1に適用すると、fl(X/M)は値1/Mを確率1/Mでとる。(211−1)/M>1/Mであるから、fl(X/M)はその値の集合の上の一様分布に従わない。
(4)を示す。z:=(M−1)/M=1−2−64と置く。§E20.1 補題 1.2 (1)をe=0とe=−1に適用すると、1=252⋅2−52はFに属し、1未満のFの最大元は1−2−53である。y∈Fがy<1ならば∣y−z∣≥2−53−2−64>2−64=∣1−z∣であり、y>1ならば∣y−z∣>∣1−z∣であるから、fl(z)=1である。X≤M−1であるからX/M<1がつねに成り立ち、X=M−1ならばfl(X/M)=fl(z)=1であるから、P(fl(X/M)=1)≥P(X=M−1)=1/Mである。▨