相対エントロピーから情報と物理を組み立てる 第6部 第3章 §6.3.3 ★★ 2t≥N2 に取れば、最も近い m から s/r が連分数の近似分数として一意に読める
どれだけの精度が要るか
位相推定で得た m は、m/2t が s/r の近似になっている。欲しいのは小数でなく分母 r そのものである。r<N なので、候補は分母が N 未満の分数に限られる。分母が N 以下の異なる2つの分数 p/q、p′/q′ は
qp−q′p′=qq′∣pq′−p′q∣≥qq′1≥N21
だけ離れている。したがって m/2t が s/r から 1/(2N2) より近ければ、その範囲に分母 N 以下の分数は s/r 1つしかない。最も近い m を得たときの誤差は ∣m/2t−s/r∣≤1/2t+1 なので、
2t≥N2,すなわちt=⌈2log2N⌉≈2n(6.3.9)
に取れば、s/r は m/2t から一意に決まる。位相推定の精度の要求が、第1のレジスタの量子ビットの数を桁数のほぼ2倍に決めている。
連分数と Legendre の定理
一意に決まることと、それを速く見つけることは別の問題である。有理数 x を
x=c0+c1+c2+⋱+cL1111=:[c0;c1,c2,…,cL]
と書くのが連分数展開である。整数部分 c0 を取り、残りの逆数の整数部分を c1 とし、と繰り返す操作は Euclid の互除法と同じで、O(log) 回で終わる。途中で打ち切った [c0;c1,…,cj] を近似分数と呼ぶ。近似分数 hj/kj は漸化式 hj=cjhj−1+hj−2、kj=cjkj−1+kj−2(h−1=1、h−2=0、k−1=0、k−2=1)で順に求まる。
定理 6.3.2(Legendre の定理 ★★)
実数 x と既約分数 p/q が ∣x−p/q∣<1/(2q2) を満たすなら、p/q は x の連分数展開の近似分数の1つである。
2t≥N2 のとき、最も近い m について ∣m/2t−s/r∣≤1/2t+1≤1/(2N2)<1/(2r2) が成り立つ。s/r を既約分数に直した s′/r′(r′ は r の約数)も 1/(2r′2)≥1/(2r2) なので同じ条件を満たし、Legendre の定理から近似分数の中に現れる。手続きは次のとおりである。m/2t の近似分数を分母の小さい順に求め、分母 q<N のそれぞれについて aq≡1(modN) かを古典の計算で確かめる。最初に成り立った q が位数の候補である。
s と r が共通の約数を持つとき
近似分数から得られるのは既約分数 s′/r′ で、gcd(s,r)=g>1 なら r′=r/g は位数の真の約数になり、ar′≡1 で候補から外れる。そのときは実行をもう1回して別の s2 から r2′ を得て、lcm(r′,r2′) を候補にする。s、s2 は独立に一様なので、lcm(r′,r2′)=r となるのは s、s2、r の3つに共通の素因数が無いときで、その確率は
p∣r∏(1−p21) ≥ p∏(1−p21)=π26≈0.608(6.3.10)
である(積は素数 p について取る。右の等式は Euler の積公式 ∏p(1−p−2)−1=∑k≥1k−2=π2/6)。r=6 なら (1−41)(1−91)=32 である。2回の実行と最小公倍数で、r によらない定数の確率で位数が得られる。
例題 6.3.3 N=21 の測定値から位数を読む ★★
オリジナルN=21、a=2、t=9(29=512≥212=441)で位数を求める回路を走らせた。
- (1) 測定値が m=427 だった。427/512 を連分数に展開して近似分数を求め、位数を読め。∣427/512−5/6∣ が Legendre の定理の条件を満たすことを確かめよ。
- (2) 別の実行で m=171、さらに別の実行で m=256 を得た。それぞれから何が読めて、2つを合わせると何が分かるか。
- (3) 読めた位数から 21 の因数を求めよ。
解答
(1) 427/512 の整数部分は 0 で、512/427=1+85/427、427/85=5+2/85、85/2=42+1/2、2/1=2 なので 427/512=[0;1,5,42,2] である。近似分数は 0/1、1/1、[0;1,5]=1/(1+1/5)=5/6、[0;1,5,42]=211/253 と続く。分母 q<21 の候補は 1 と 6 で、21=2≡1、26=64=3⋅21+1≡1 なので位数は r=6 である。誤差は ∣427/512−5/6∣=∣2562−2560∣/3072=1/1536 で、1/210=1/1024 以下、Legendre の条件 1/(2⋅62)=1/72 より小さい。
(2) 171/512=[0;2,1,170] で、近似分数は 1/2、1/3、171/512 である。22=4、23=8 はどちらも 1 でなく、この実行だけでは位数は読めない。171 は s=2 の山(512⋅2/6=170.67)で、2/6=1/3 と約分されて分母が 3 になった。m=256 は 256/512=1/2 で、s=3 の山から分母 2 が出る。2つを合わせて lcm(3,2)=6 を候補にすると 26≡1 で、位数 6 が得られる。
(3) r=6 は偶数で、23=8≡−1≡20 なので帰着の条件を満たす。gcd(8−1,21)=7、gcd(8+1,21)=3 で、21=3×7 である。
AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com