Quantum Computation: Zusammenfassung der 12. Vorlesung (06.02.09) 2.3,2 Auswertung durch Kettenbruchentwicklung Wie am Schluß des letzten Abschnitts angedeutet wurde, lässt sich dass Ergebnis eines Laufs des Quantgenalgorithmus zur Ordnungsbestimmung durch Kettenbruchentwicklung des Messergebnisses erhalten. Um dies zu verstehen, müssen wir die Kettenbrüche etwas geneuer betrachten. Kettenbrüche lassen sich mit reellen Zahlfolgen belibiger Länge bilden. Hier genügt es jedoch, Kettenbrüche endlicher Länge 1 x = [a0 a1 a2 . . . aN ] := a0 + 1 a1 + a2 + 1 ···· · ··· a3 + 1 aN −1 + aN mit positiven Nennern, d.h. ao ∈ R, und a1 , a2 . . . . , aN ∈ R+ , sowie die spezielleren einfachen Kettenbrüche, d.h. ao ∈ Z, und a1 , a2 . . . . , aN ∈ N zu betrachten.. Kettenbrüche kann man abkürzen, indem man [ao a1 a2 . . . aN ] = [ao a1 a2 . . . an−1 [an , . . . aN ]] 1 = ao + 1 a1 + 1 a2 + ···· · ··· a3 + 1 an−1 + [an . . . aN ] schreibt. Kettenbrüche mit positiven Nennern gehen dabei in ebensolche über. Der Kettenbruch a0n := [an . . . aN ] heisst dann der n-te vollständige Nenner. Der Kettenbruch pn := [a0 a1 a2 . . . an ] qn 1 heisst der n-te Näherungsbruch von x = [a0 a1 a2 . . . aN ]. Die vorstehend definierten Begriffe verknüpft der im folgenden Satz behauptete Algorithmus, der auch als Euklidischer Algothmus bekannt ist: Satz: Für Kettenbrüche gilt allgemein mit den vorstehenden Bezeichnungen pn = an pn−1 + pn−2 , qn = an qn−1 + qn−2 , p0 = a0 , p−1 = 1, p−2 = 0; q0 = 1, q−1 = 0, q−2 = 0. Beweis : Es gilt p0 a0 = , 1 q0 1 a0 a1 + 1 a1 p0 + p−1 p1 [a0 a1 ] = a0 + = = = , a1 a1 a1 q0 + q−1 q1 a2 a0 (a1 a2 + 1) + a2 1 = a0 + = [a0 a1 a2 ] = a0 + 1 a1 a2 + 1 a1 a2 + 1 a1 + a2 (a0 a1 + 1)a2 + a0 a2 p 1 + p 0 p2 = = = . a1 a2 + 1 a2 q 1 + q 0 q2 [a0 ] = Wir machen nun die Induktionsannahme [a0 a1 a2 . . . an ] = pn an pn−1 + pn−2 = . an qn−1 + qn−2 qn Dann folgt [a0 a1 a2 . . . an an+1 ] = [a0 a1 a2 . . . an−1 (an + (an + (an + 1 )pn−1 an+1 1 )q an+1 n−1 + pn−2 + qn−2 = 1 an+1 )] (an an+1 + 1) + an+1 pn−2 (an an+1 + 1)qn−1 + an+1 qn−2 an+1 (an pn−1 + pn−2 ) + pn−1 an+1 pn + pn−1 pn+1 = = , an+1 (an qn−1 + qn−2 ) + qn−1 an+1 qn + qn−1 qn+1 was die Induktionsannnahme bestätigt. Folgerungen aus diesem zentralen Satz sind: 2 Satz: Es gilt mit den vorstehenden Bezeichnungen pn qn−1 − pn−1 qn = (−1)n+1 oder auch pn pn−1 (−1)n+1 − = . qn qn−1 qn−1 qn Beweis : Für n = 0 gilt p0 q−1 − p−1 q0 = (−1)0+1 , und für n = 1 gilt p1 q0 − p0 q1 = (a1 a0 + 1)1 − a0 a1 = (−1)1+1 . Aus der Induktionsannaahme pn qn−1 − pn−1 qn = (−1)n+1 folgt pn+1 qn − pn qn+1 = (an+1 pn + pn−1 )qn − pn (an+1 qn + qn−1 ) = pn−1 qn − pn qn−1 = −(−1)n+1 = (−1)(n+1)+1 , was die Annahme bestätigt. Satz: Es gilt mit den vorstehenden Bezeichnungen pn qn−2 − pn−2 qn = (−1)n an oder auch (−1)n an pn pn−2 − = . qn qn−2 qn−2 qn Beweis : pnn qn−2 − pn−2 qn = (an pn−1 + pn−2 )qn−2 − pn−2 (an qn−1 + qn−2 ) = an (pn−1 qn−2 − pn−2 qn−1 = (−1)n an . 3 Die folgenden zwei Sätze gelten für Kettenbrüche mit positiven Nennern. In diesem Fall gilt auch pn , qn > 0, n = 1, 2, . . . , N . Für pn x = [ao a1 a2 . . . aN ] sei xn = so dass x = xN . qn Eine unmittelbare Folgerung aus dem oben zuerst bewiesenen Satz ist: Satz: Mit den vorstehenden Bezeichnungen gilt für 2 < n < N x = [ao a1 a2 . . . aN ] = a0n pn−1 + pn−2 . a0n qn−1 + qn−2 Mittelbar über die beiden Sätze danach erhält man für die Näherungsbrüche xn : Satz: Für natürliche Zahlen k gilt x2(k−1) < x2k < x so lange 2k < N ist, und x < x2k+1 < x2(k−1)+1 so lange 2k + 1 < N ist. Je nacchdem, ob N gerade oder ungerade ist, ist x das größte bzw. kleinste Element einer dieser Folgen. Für einfache Kettenbrüche ist pn , qn ∈ N, n = 1, 2, . . . , N , und es gelten überdies die folgenden drei Sätze. Satz: Es gilt q0 ≤ q1 < q2 · · · < qN −1 < qN Beweis : Da an ∈ N für n ≥ 1 und q0 = 1 ist, gilt q0 ≤ a1 q0 ≤ q1 und für n ≥ 2 gilt qn = an qn−1 + qn−2 ≥ qn−1 + qn−2 > qn−1 . Satz: Es gilt n ≤ qn , und n < qn für 4 ≤ n ≤ N. Beweis : Die Behauptung gilt für n = 0, 1 und ferner ist q2 = a2 q1 + q0 ≥ a2 + 1 ≥ 2 und q3 = a3 q2 + q1 ≥ a2 + 1 ≥ 2 ≥ 2 + 1 = 3. Schließlich ist qn = an qn−1 + qn−2 ≥ n − 1 + n − 2 = 2n − 3 > n für n ≥ 4. 4 Satz: Für einfache Kettenbrüche gilt (pn , qn ) = 1. Beweis: Wgen pn qn−1 − pn−1 qn = (−1)n+1 enthält der von pn und qn erzeugte Modul ganzer Zahlen die 1 und ist deshalb S1 . Damit sind pn und qn teilerfremd. Der Wert eines einfachen Kettenbruuches endlicher Länge ist offenbar stets eine rationale Zahl. Es gilt aber auch die Umkehrung dieser Implikation, wie der folgende Satz zeigt. Satz: Sei x ∈ Q. Dann gibt es eine natürliche Zahl N , eine ganze Zahl a0 und natürliche Zahlen an , n = 1, 2, . . . , N , so dass x = [ao a1 a2 . . . aN ] ist. Beweis: Es gilt x∈Q ⇒ x = a0 + ξ0 , 1 = a1 + ξ1 , ξ0 6= 0 ⇒ ξ0 1 = a2 + ξ2 , ξ1 6= 0 ⇒ ξ1 1 = a3 + ξ3 , ξ2 6= 0 ⇒ ξ2 a0 ∈ Z, 0 ≤ ξ0 < 1 und falls a1 ∈ N, 0 ≤ ξ1 < 1 und falls a2 ∈ N, 0 ≤ ξ2 < 1 und falls a3 ∈ N, 0 ≤ ξ3 < 1 ... Dieser “Kettenbruchalgorithmus” kann fortgesetzt werden, solange ξn 6= 0 ist und erzeugt offenbar die Nenner für den n-ten Näherungsbruch xn von x, wenn er mit dem n-ten Schritt abgebrochen wird. Ist ξN +1 = 0, dann ist x = [ao a1 a2 . . . aN ]. - Es bleibt zu zeigen, dass dieser Fall für x ∈ Q nach endlich vielen Schritten eintreten muss. Dazu schreiben wir x = ka mit a ∈ Z, k ∈ N und (a, k) = 1, dann ist a = a0 k + ξ0 k. Falls ξ0 6= 0 ist, dann folgt wegen a − ao k ∈ N auch k1 := ξ0 k ∈ N, so dass mit ξ10 = kk1 k = a1 k1 + ξ1 k1 ∧ a = a0 k + k1 folgen. Falls ξ1 6= 0, dann verfährt man analog und erhält k1 = a2 k2 + ξ2 k2 ∧ 5 k = a1 k 1 + k 2 − Falls ξ2 6= 0 ist, dann verfährt man analog und erhält k2 = a3 k3 + ξ3 k3 ∧ k 1 = a2 k 2 + k 3 . ∧ kn−2 = an kn + kn+1 Solange ξn−1 6= 0 ist, hat man also kn−1 = an kn + ξn kn und es folgt k > k1 > k 2 > k 2 > · · · > k n ∧ k, ki ∈ N. Nach N Schritten, wobei N ≤ k gilt, muß also der Fall ξN +1 = 0 eintreten und die Nenner eines einfachen Kettenbruchs endlicher Länge mit dem Wert x = [ao a1 a2 . . . aN ] sind bestimmt. Nun gilt für den letzten Nenner entweder aN = 1 oder aN ≥ 2. Im ersten Fall ist 1 1 1 = = , 1 1 aN −1 + 1 aN −1 + aN −1 + aN 1 und man kann den Kettenbruch um einen Nenner verkürzen. Der letzte Nenner ist dann größer oder gleich 2: x = [ao a1 a2 . . . aN −1 1] = [ao a1 a2 . . . (aN −1 + 1)]. Im zweiten Fall ist 1 = aN 1 , 1 1 und man kann den Kettenbruch um einen Nenner verlängern. Der letzte Nenner ist dann gleich 1: (aN − 1) + x = [ao a1 a2 . . . aN ] = [ao a1 a2 . . . (aN − 1)1]. Es gilt also: Satz: Sei x ∈ Q. Dann hat man entweder die Wahl, x durch einen einfachen Kettenbruch mit gerader oder Ungerader Länge N darzustellen, oder die Wahl, x durch einen einfachen Kettenbruch mit dem letzten Nenner gleich 1 oder größer als 1 darzustellen. 6 Wir zeigen im übernächsten Satz, dass die Darstellung von x ∈ Q durch einen einfachen Kettenbruch bis auf diese Alternativen eindeutig ist. Die Aussage des nächsten Satzes wird im Beweis des Eindeutigkeitssatzes verwendet. Satz: Mit Ausnahme des Falles n = N − 1 ∧ aN = 1, in dem für den (N − 1)-ten vollständigen Nenner [a0N −1 ] = aN −1 + 1 gilt, ist für einfache Kettenbrüche [a0n ] = an . Beweis: Für x ∈ / Z gilt a0 = [x] < x x = a00 = a0 + 1 a01 ∧ a01 > a1 ∈ N . ⇒ . [a00 ] = a0 . Für 1 ≤ n ≤ N − 2 gilt a0n = an + 1 a0n+1 ∧ a0n+1 > an+1 ∈ N . ⇒ . [a0n ] = an . Wegen a0N −1 = aN −1 + 1 aN sind zwei Fälle zu unterscheiden. Falls aN > 1, dann gilt auch [a0N −1 ] = aN −1 , aber falls aN = 1, dann gilt [a0N −1 ] = aN −1 + 1. Satz: Für einfache Kettenbrüche folgt aus x = [ao a1 a2 . . . aN ] = [bo b1 b2 . . . bM ], aN > 1, bM > 1, dass N = M und an = bn , n = 0, 2, 3, . . . , N . Beweis: Es gilt [x] = a0 = b0 . Dann gilt auch x = a0 + a10 = a0 + b10 und 1 1 damit a01 = b01 und [a01 ] = [b01 ], so dass nach dem vorstehenden Satz a1 = b1 folgt. Aus der Induktionsannahme ak = bk für k = 3, 4, . . . , n folgt x = [ao a1 dotsan−1a0n ] = [bo a1 a2 . . . an−1 b0n ], d.h. x= b0 pn−1 + pn−2 a0n pn−1 + pn−2 = n0 . an qn−1 + qn−2 bn qn−1 + qn−2 7 Der Zähler der Differenz dieser Ausdrücke verschwindet also, d.h. 0 = (a0n pn−1 + pn−2 )(b0n qn−1 + qn−2 ) − (b0n pn−1 + pn−2 )(a0n qn−1 + qn−2 ) = a0n pn−1 qn−2 + pn−2 b0n qn−1 − (b0n pn−1 qn−2 + pn−2 a0n qn−1 ) = (a0n − b0n )(pn−1 qn−2 − pn−2 qn−1 ) = (a0n − b0n )(−1)n . Damit ist a0n = b0n und auf Grund des vorstehenden Satzes folgt an = bn , was die Induktionsannahme bestätigt. Man bemerke, dass ie Voraussetzng an , bn > 1 den Ausnahmefall für n = N − 1 ausschliet. Die Gleichheit der Nenner gilt also für n ≤ N , falls o.B.d.A. fN ≤ M angenommen wird. - Die Annahme N < M führt zum Widerspruch, denn aus x= b0 +1 pN + pN −1 pN = N qN b0N +1 qN + qN −1 folgt 0 = qN (b0N +1 pN + pN −1 ) − pN (b0N +1 qN + qN −1 ) = qN pN −1 − qN −1 PN = (−1)N . 8