tecktom.com

連分数で分母を読む

2026年10月15日6分で読めますAI生成教科書『虎の巻』第6部 第3章 Shor のアルゴリズム
目次
  1. どれだけの精度が要るか
  2. 連分数と Legendre の定理
  3. と が共通の約数を持つとき
  4. 木下の層

AI 生成・木下が未勉強

相対エントロピーから情報と物理を組み立てる 第6部 第3章 §6.3.3 ★★ 2t≥N22^t\ge N^2 に取れば、最も近い mm から s/rs/r が連分数の近似分数として一意に読める

どれだけの精度が要るか

位相推定で得た mm は、m/2tm/2^t が s/rs/r の近似になっている。欲しいのは小数でなく分母 rr そのものである。r<Nr<N なので、候補は分母が NN 未満の分数に限られる。分母が NN 以下の異なる2つの分数 p/qp/q、p′/q′p'/q' は

∣pq−p′q′∣=∣pq′−p′q∣qq′≥1qq′≥1N2\Bigl|\frac pq-\frac{p'}{q'}\Bigr|=\frac{\lvert pq'-p'q\rvert }{qq'}\ge\frac1{qq'}\ge\frac1{N^2}

だけ離れている。したがって m/2tm/2^t が s/rs/r から 1/(2N2)1/(2N^2) より近ければ、その範囲に分母 NN 以下の分数は s/rs/r 1つしかない。最も近い mm を得たときの誤差は ∣m/2t−s/r∣≤1/2t+1\lvert m/2^t-s/r\rvert \le1/2^{t+1} なので、

2t≥N2,すなわちt=⌈2log⁡2N⌉≈2n(6.3.9)2^t\ge N^2,\qquad\text{すなわち}\quad t=\lceil2\log_2N\rceil\approx2n\tag{6.3.9}

に取れば、s/rs/r は m/2tm/2^t から一意に決まる。位相推定の精度の要求が、第1のレジスタの量子ビットの数を桁数のほぼ2倍に決めている。

連分数と Legendre の定理

一意に決まることと、それを速く見つけることは別の問題である。有理数 xx を

x=c0+1c1+1c2+1⋱+1cL≕[c0;c1,c2,…,cL]x=c_0+\cfrac{1}{c_1+\cfrac{1}{c_2+\cfrac{1}{\ddots+\cfrac1{c_L}}}}\eqqcolon[c_0;c_1,c_2,\dots,c_L]

と書くのが連分数展開である。整数部分 c0c_0 を取り、残りの逆数の整数部分を c1c_1 とし、と繰り返す操作は Euclid の互除法と同じで、O(log⁡)\mathcal{O}(\log) 回で終わる。途中で打ち切った [c0;c1,…,cj][c_0;c_1,\dots,c_j] を近似分数と呼ぶ。近似分数 hj/kjh_j/k_j は漸化式 hj=cjhj−1+hj−2h_j=c_jh_{j-1}+h_{j-2}、kj=cjkj−1+kj−2k_j=c_jk_{j-1}+k_{j-2}(h−1=1h_{-1}=1、h−2=0h_{-2}=0、k−1=0k_{-1}=0、k−2=1k_{-2}=1)で順に求まる。

定理 6.3.2(Legendre の定理 ★★)

実数 xx と既約分数 p/qp/q が ∣x−p/q∣<1/(2q2)\lvert x-p/q\rvert <1/(2q^2) を満たすなら、p/qp/q は xx の連分数展開の近似分数の1つである。

2t≥N22^t\ge N^2 のとき、最も近い mm について ∣m/2t−s/r∣≤1/2t+1≤1/(2N2)<1/(2r2)\lvert m/2^t-s/r\rvert \le1/2^{t+1}\le1/(2N^2)<1/(2r^2) が成り立つ。s/rs/r を既約分数に直した s′/r′s'/r'(r′r' は rr の約数)も 1/(2r′2)≥1/(2r2)1/(2r'^2)\ge1/(2r^2) なので同じ条件を満たし、Legendre の定理から近似分数の中に現れる。手続きは次のとおりである。m/2tm/2^t の近似分数を分母の小さい順に求め、分母 q<Nq<N のそれぞれについて aq≡1(modN)a^q\equiv1\pmod N かを古典の計算で確かめる。最初に成り立った qq が位数の候補である。

ss と rr が共通の約数を持つとき

近似分数から得られるのは既約分数 s′/r′s'/r' で、gcd⁡(s,r)=g>1\gcd(s,r)=g>1 なら r′=r/gr'=r/g は位数の真の約数になり、ar′≢1a^{r'}\not\equiv1 で候補から外れる。そのときは実行をもう1回して別の s2s_2 から r2′r_2' を得て、lcm⁡(r′,r2′)\operatorname{lcm}(r',r_2') を候補にする。ss、s2s_2 は独立に一様なので、lcm⁡(r′,r2′)=r\operatorname{lcm}(r',r_2')=r となるのは ss、s2s_2、rr の3つに共通の素因数が無いときで、その確率は

∏p ∣ r(1−1p2) ≥ ∏p(1−1p2)=6π2≈0.608(6.3.10)\prod_{p\,|\,r}\Bigl(1-\frac1{p^2}\Bigr)\ \ge\ \prod_{p}\Bigl(1-\frac1{p^2}\Bigr)=\frac{6}{\pi^2}\approx0.608\tag{6.3.10}

である(積は素数 pp について取る。右の等式は Euler の積公式 ∏p(1−p−2)−1=∑k≥1k−2=π2/6\prod_p(1-p^{-2})^{-1}=\sum_{k\ge1}k^{-2}=\pi^2/6)。r=6r=6 なら (1−14)(1−19)=23(1-\frac14)(1-\frac19)=\frac23 である。2回の実行と最小公倍数で、rr によらない定数の確率で位数が得られる。

例題 6.3.3 N=21N=21 の測定値から位数を読む ★★

オリジナルN=21N=21、a=2a=2、t=9t=9(29=512≥212=4412^9=512\ge21^2=441)で位数を求める回路を走らせた。

  1. (1) 測定値が m=427m=427 だった。427/512427/512 を連分数に展開して近似分数を求め、位数を読め。∣427/512−5/6∣\lvert 427/512-5/6\rvert が Legendre の定理の条件を満たすことを確かめよ。
  2. (2) 別の実行で m=171m=171、さらに別の実行で m=256m=256 を得た。それぞれから何が読めて、2つを合わせると何が分かるか。
  3. (3) 読めた位数から 2121 の因数を求めよ。
解答

(1) 427/512427/512 の整数部分は 00 で、512/427=1+85/427512/427=1+85/427、427/85=5+2/85427/85=5+2/85、85/2=42+1/285/2=42+1/2、2/1=22/1=2 なので 427/512=[0;1,5,42,2]427/512=[0;1,5,42,2] である。近似分数は 0/10/1、1/11/1、[0;1,5]=1/(1+1/5)=5/6[0;1,5]=1/(1+1/5)=5/6、[0;1,5,42]=211/253[0;1,5,42]=211/253 と続く。分母 q<21q<21 の候補は 11 と 66 で、21=2≢12^1=2\not\equiv1、26=64=3⋅21+1≡12^6=64=3\cdot21+1\equiv1 なので位数は r=6r=6 である。誤差は ∣427/512−5/6∣=∣2562−2560∣/3072=1/1536\lvert 427/512-5/6\rvert =\lvert 2562-2560\rvert /3072=1/1536 で、1/210=1/10241/2^{10}=1/1024 以下、Legendre の条件 1/(2⋅62)=1/721/(2\cdot6^2)=1/72 より小さい。

(2) 171/512=[0;2,1,170]171/512=[0;2,1,170] で、近似分数は 1/21/2、1/31/3、171/512171/512 である。22=42^2=4、23=82^3=8 はどちらも 11 でなく、この実行だけでは位数は読めない。171171 は s=2s=2 の山(512⋅2/6=170.67512\cdot2/6=170.67)で、2/6=1/32/6=1/3 と約分されて分母が 33 になった。m=256m=256 は 256/512=1/2256/512=1/2 で、s=3s=3 の山から分母 22 が出る。2つを合わせて lcm⁡(3,2)=6\operatorname{lcm}(3,2)=6 を候補にすると 26≡12^6\equiv1 で、位数 66 が得られる。

(3) r=6r=6 は偶数で、23=8≢−1≡202^3=8\not\equiv-1\equiv20 なので帰着の条件を満たす。gcd⁡(8−1,21)=7\gcd(8-1,21)=7、gcd⁡(8+1,21)=3\gcd(8+1,21)=3 で、21=3×721=3\times7 である。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『虎の巻』の記事一覧へ