From 96c61feb021015cb3e5a2ae74ed7fd64236da8cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 08:56:40 +0200
Subject: add experiment to reedsolomon

---
 buch/papers/reedsolomon/experiments/f.m | 56 +++++++++++++++++++++++++++++++++
 1 file changed, 56 insertions(+)
 create mode 100644 buch/papers/reedsolomon/experiments/f.m

(limited to 'buch')

diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m
new file mode 100644
index 0000000..ba58825
--- /dev/null
+++ b/buch/papers/reedsolomon/experiments/f.m
@@ -0,0 +1,56 @@
+#
+# f.m -- Reed-Solomon-Visualisierung mit FFT
+#
+# (c) 2021 Prof Dr Andreas Müller, OST Ostschweizer Fachhochschule
+#
+N = 64;
+b = 32;
+l = N + b;
+
+signal = zeros(l,1);
+signal(1:N,1) = round(10 * rand(N,1));
+signal
+
+codiert = fft(signal)
+
+plot(abs(signal));
+xlim([1, l]);
+title("Signal");
+pause()
+
+fehler = zeros(l,1);
+fehler(21,1) = 2;
+fehler(75,1) = 1;
+fehler(7,1) = 2;
+
+plot(fehler);
+xlim([1, l]);
+title("Fehler");
+pause()
+
+empfangen = codiert + fehler;
+
+plot(abs(empfangen));
+xlim([1, l]);
+title("Empfangen");
+pause()
+
+decodiert = ifft(empfangen)
+plot(abs(decodiert));
+xlim([1, l]);
+title("Decodiert");
+pause()
+
+syndrom = decodiert;
+syndrom(1:N,1) = zeros(N,1)
+plot(abs(syndrom));
+xlim([1, l]);
+title("Syndrom");
+pause()
+
+locator = abs(fft(syndrom))
+
+plot(locator);
+xlim([1, l]);
+title("Locator");
+pause()
-- 
cgit v1.2.1


From 516b6c8a4d7672a13847d1fb71be2df213459d3a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 09:47:35 +0200
Subject: update fs-fft

---
 buch/papers/reedsolomon/experiments/f.m | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

(limited to 'buch')

diff --git a/buch/papers/reedsolomon/experiments/f.m b/buch/papers/reedsolomon/experiments/f.m
index ba58825..6bdc741 100644
--- a/buch/papers/reedsolomon/experiments/f.m
+++ b/buch/papers/reedsolomon/experiments/f.m
@@ -11,13 +11,18 @@ signal = zeros(l,1);
 signal(1:N,1) = round(10 * rand(N,1));
 signal
 
-codiert = fft(signal)
-
 plot(abs(signal));
 xlim([1, l]);
 title("Signal");
 pause()
 
+codiert = fft(signal)
+
+plot(abs(codiert));
+xlim([1, l]);
+title("Codiert");
+pause()
+
 fehler = zeros(l,1);
 fehler(21,1) = 2;
 fehler(75,1) = 1;
-- 
cgit v1.2.1


From ee33b6de909df12cdd757abcb5db04fc9d2b5a56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 15:46:41 +0200
Subject: kgV

---
 buch/chapters/30-endlichekoerper/euklid.tex | 236 ++++++++++++++++++++++++++++
 1 file changed, 236 insertions(+)

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex
index db326f8..9bc36a6 100644
--- a/buch/chapters/30-endlichekoerper/euklid.tex
+++ b/buch/chapters/30-endlichekoerper/euklid.tex
@@ -431,6 +431,7 @@ zur Bestimmung des grössten gemeinsamen Teilers von $76415$ und $23205$
 zur Berechnung der Koeffizienten $c_k$ und $d_k$
 Wir schreiben die gefundenen Zahlen in eine Tabelle:
 \begin{center}
+\label{buch:endlichekoerper:beispiel1erweitert}
 \renewcommand{\arraystretch}{1.1}
 \begin{tabular}{|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}>{$}r<{$}|}
 \hline
@@ -614,4 +615,239 @@ Aus den letzten zwei Zeilen folgt
 $ua-vb = ab/g - ab/g = 0$, wie erwartet.
 \end{beispiel}
 
+%
+% Das kleinste gemeinsame Vielfache
+%
+\subsection{Das kleinste gemeinsame Vielfache
+\label{buch:subsection:daskgv}}
+Das kleinste gemeinsame Vielfache zweier Zahlen $a$ und $b$ ist
+\[
+\operatorname{kgV}(a,b)
+=
+\frac{ab}{\operatorname{ggT}(a,b)}.
+\]
+Wir suchen nach einen Algorithmus, mit dem man das kleinste gemeinsame
+Vielfache effizient berechnen kann.
+
+Die Zahlen $a$ und $b$ sind beide Vielfache des grössten gemeinsamen
+Teilers $g=\operatorname{ggT}(a,b)$, es gibt also Zahlen $u$ und $v$ derart,
+dass $a=ug$ und $b=vg$.
+Wenn $t$ ein gemeinsamer Teiler von $u$ und $v$ ist, dann ist $tg$ ein
+grösserer gemeinsamer Teiler von $a$ und $b$.
+Dies kann nicht sein, also müssen $u$ und $v$ teilerfremd sein.
+Das kleinste gemeinsame Vielfache von $a$ und $b$ ist dann $ugv=av=ub$.
+Die Bestimmung des kleinsten gemeinsamen Vielfachen ist also gleichbedeutend
+mit der Bestimmung der Zahle $u$ und $v$.
+
+Die definierende Eigenschaften von $u$ und $v$ kann man in Matrixform als
+\begin{equation}
+\begin{pmatrix}
+a\\b
+\end{pmatrix}
+=
+\underbrace{
+\begin{pmatrix}
+u&?\\
+v&?
+\end{pmatrix}}_{\displaystyle =K}
+\begin{pmatrix}
+\operatorname{ggT}(a,b)\\ 0
+\end{pmatrix}
+\label{buch:eindlichekoerper:eqn:uvmatrix}
+\end{equation}
+geschrieben werden, wobei wir die Matrixelemente $?$ nicht kennen.
+Diese Elemente müssen wir auch nicht kennen, um $u$ und $v$ zu bestimmen.
+
+Bei der Bestimmung des grössten gemeinsamen Teilers wurde der Vektor auf
+der rechten Seite von~\eqref{buch:eindlichekoerper:eqn:uvmatrix} bereits
+gefunden.
+Die Matrizen $Q(q_i)$, die die einzelne Schritte des euklidischen
+Algorithmus beschreiben, ergeben ihn als
+\[
+\begin{pmatrix}
+\operatorname{ggT}(a,b)\\0
+\end{pmatrix}
+=
+Q(q_n)Q(q_{n-1}) \dots Q(q_1)Q(q_0)
+\begin{pmatrix}a\\b\end{pmatrix}.
+\]
+Indem wir die Matrizen $Q(q_n)$ bis $Q(q_0)$ auf die linke Seite der
+Gleichung schaffen, erhalten wir
+\[
+\begin{pmatrix}a\\b\end{pmatrix}
+=
+Q(q_0)^{-1}
+Q(q_1)^{-1}
+\dots
+Q(q_{n-1})^{-1}
+Q(q_n)
+\begin{pmatrix}\operatorname{ggT}(a,b)\\0\end{pmatrix}.
+\]
+Eine mögliche Lösung für die Matrix $K$ in
+\eqref{buch:eindlichekoerper:eqn:uvmatrix}
+ist der die Matrix
+\[
+K
+=
+Q(q_0)^{-1}
+Q(q_1)^{-1}
+\dots
+Q(q_{n-1})^{-1}
+Q(q_n).
+\]
+Insbesondere ist die Matrix $K$ die Inverse der früher gefundenen
+Matrix $Q$.
+
+Die Berechnung der Matrix $K$ als Inverse von $Q$ ist nicht sehr
+effizient.
+Genauso wie es möglich war, das Produkt $Q$ der Matrizen
+$Q(q_k)$ iterativ zu bestimmen, muss es auch eine Rekursionsformel
+für das Produkt der inversen Matrizen $Q(q_k)^{-1}$ geben.
+
+Schreiben wir die die gesuchte Matrix 
+\[
+K_k
+=
+Q(q_0)^{-1}\dots Q(q_{k-1})^{-1}
+=
+\begin{pmatrix}
+e_k & e_{k-1}\\
+f_k & f_{k-1}
+\end{pmatrix},
+\]
+dann kann, kann $K_k$ durch die Rekursion
+\[
+K_{k+1}
+=
+K_{k} Q(q_k)^{-1} 
+=
+K_k K(q_k)
+\qquad\text{mit}\qquad
+K_0 = \begin{pmatrix}1&0\\0&1\end{pmatrix} = I
+\]
+berechnen.
+Die Inverse von $Q(q)$ ist
+\[
+K(q)
+=
+Q(q)^{-1}
+=
+\frac{1}{\det Q(q)}
+\begin{pmatrix}
+q&1\\
+1&0
+\end{pmatrix}
+\quad\text{denn}\quad
+K(q)Q(q)
+=
+\begin{pmatrix}
+q&1\\
+1&0
+\end{pmatrix}
+\begin{pmatrix}
+0&1\\
+1&-q
+\end{pmatrix}
+=
+\begin{pmatrix}
+1&0\\
+0&1
+\end{pmatrix}.
+\]
+Da die zweite Spalte von $K(q)$ die erste Spalte einer Einheitsmatrix
+ist, wird die zweite Spalte des Produktes $AK(q)$ immer die erste Spalte
+von $A$ sein.
+In $K_{k+1}$ ist daher nur die erste Spalte neu, die zweite Spalte ist
+die erste Spalte von $K_k$.
+
+Wenn $K_k$ die Matrixelemente
+\[
+K_k
+=
+\begin{pmatrix}
+e_k & e_{k-1} \\
+f_k & f_{k-1}
+\end{pmatrix}
+\qquad\text{und}\qquad
+K_0 =
+\begin{pmatrix}
+1&0\\
+0&1
+\end{pmatrix}
+\Rightarrow
+\left\{
+\begin{aligned}
+e_0 &= 1 & e_{-1} &= 0\\
+f_0 &= 0 & f_{-1} &= 1
+\end{aligned}
+\right.
+\]
+Daraus kann man  Rekursionsformeln für die Folgen $e_k$ und $f_k$ 
+ablesen, es gilt
+\begin{align*}
+e_{k+1} &= q_ke_k + e_{k-1} \\
+f_{k+1} &= q_kf_k + f_{k-1}
+\end{align*}
+für $k=0,1,\dots ,n$.
+Damit können $e_k$ und $f_k$ gleichzeitig mit den Zahlen $c_k$ und $d_k$
+in einer Tabelle berechnen.
+
+\begin{beispiel}
+Wir erweitern das Beispiel von
+Seite~\pageref{buch:endlichekoerper:beispiel1erweitert}
+um die beiden Spalten zur Berechnung von $e_k$ und $f_k$:
+\begin{center}
+\renewcommand{\arraystretch}{1.1}
+\begin{tabular}{|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}>{$}r<{$}|>{$}r<{$}>{$}r<{$}|}
+\hline
+k&   a_k&   b_k&    q_k&  r_k&     c_k&     d_k&   e_k&   f_k\\
+\hline
+ &      &      &       &     &       1&       0&     0&     1\\
+0& 76415& 23205&      3& 6800&       0&       1&     1&     0\\
+1& 23205&  6800&      3& 2805&       1&      -3&     3&     1\\
+2&  6800&  2805&      2& 1190&      -3&      10&    10&     3\\
+3&  2805&  1190&      2&  425&       7&     -23&    23&     7\\
+4&  1190&   425&      2&  340&     -17&      56&    56&    17\\
+5&   425&   340&      1&   85&      41&    -135&   135&    41\\
+6&   340&    85&      4&    0&     -58&     191&   191&    58\\
+7&    85&     0&       &     &     273&    -899&   899&   273\\
+\hline
+\end{tabular}
+\end{center}
+Der grösste gemeinsame Teiler ist $\operatorname{ggT}(a,b)=85$.
+Aus der letzten Zeile der Tabelle kann man jetzt die Zahlen $u=e_7=899$
+und $v=f_7=273$ ablesen, und tatsächlich ist
+\[
+a=76415 = 899\cdot 85
+\qquad\text{und}\qquad
+b=23205 = 273 \cdot 85.
+\]
+Daraus kann man dann auch das kleinste gemeinsame Vielfache ablesen, es ist
+\[
+\operatorname{kgV}(a,b)
+=
+\operatorname{kgV}(76415,23205)
+=
+\left\{
+\begin{aligned}
+ub
+&=
+899\cdot 23205\\
+va
+&=
+273\cdot 76415
+\end{aligned}
+\right\}
+=
+20861295.
+\qedhere
+\]
+\end{beispiel}
+
+Der erweiterte Algorithmus kann auch dazu verwendet werden,
+das kleinste gemeinsame Vielfache zweier Polynome zu berechnen.
+Dies wird zum Beispiel bei der Decodierung des Reed-Solomon-Codes in
+Kapitel~\ref{chapter:reedsolomon} verwendet.
+
+
 
-- 
cgit v1.2.1


From b94b4240a20b40871b914ddd7ae5df14f020e112 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 15:58:59 +0200
Subject: typos

---
 buch/chapters/30-endlichekoerper/euklid.tex | 38 +++++++----------------------
 1 file changed, 9 insertions(+), 29 deletions(-)

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex
index 9bc36a6..8aa2f71 100644
--- a/buch/chapters/30-endlichekoerper/euklid.tex
+++ b/buch/chapters/30-endlichekoerper/euklid.tex
@@ -637,7 +637,7 @@ grösserer gemeinsamer Teiler von $a$ und $b$.
 Dies kann nicht sein, also müssen $u$ und $v$ teilerfremd sein.
 Das kleinste gemeinsame Vielfache von $a$ und $b$ ist dann $ugv=av=ub$.
 Die Bestimmung des kleinsten gemeinsamen Vielfachen ist also gleichbedeutend
-mit der Bestimmung der Zahle $u$ und $v$.
+mit der Bestimmung der Zahlen $u$ und $v$.
 
 Die definierende Eigenschaften von $u$ und $v$ kann man in Matrixform als
 \begin{equation}
@@ -704,7 +704,7 @@ Genauso wie es möglich war, das Produkt $Q$ der Matrizen
 $Q(q_k)$ iterativ zu bestimmen, muss es auch eine Rekursionsformel
 für das Produkt der inversen Matrizen $Q(q_k)^{-1}$ geben.
 
-Schreiben wir die die gesuchte Matrix 
+Schreiben wir die gesuchte Matrix 
 \[
 K_k
 =
@@ -715,8 +715,8 @@ e_k & e_{k-1}\\
 f_k & f_{k-1}
 \end{pmatrix},
 \]
-dann kann, kann $K_k$ durch die Rekursion
-\[
+dann kann man $K_k$ durch die Rekursion
+\begin{equation}
 K_{k+1}
 =
 K_{k} Q(q_k)^{-1} 
@@ -724,7 +724,8 @@ K_{k} Q(q_k)^{-1}
 K_k K(q_k)
 \qquad\text{mit}\qquad
 K_0 = \begin{pmatrix}1&0\\0&1\end{pmatrix} = I
-\]
+\label{buch:endlichekoerper:eqn:kgvrekursion}
+\end{equation}
 berechnen.
 Die Inverse von $Q(q)$ ist
 \[
@@ -760,30 +761,9 @@ von $A$ sein.
 In $K_{k+1}$ ist daher nur die erste Spalte neu, die zweite Spalte ist
 die erste Spalte von $K_k$.
 
-Wenn $K_k$ die Matrixelemente
-\[
-K_k
-=
-\begin{pmatrix}
-e_k & e_{k-1} \\
-f_k & f_{k-1}
-\end{pmatrix}
-\qquad\text{und}\qquad
-K_0 =
-\begin{pmatrix}
-1&0\\
-0&1
-\end{pmatrix}
-\Rightarrow
-\left\{
-\begin{aligned}
-e_0 &= 1 & e_{-1} &= 0\\
-f_0 &= 0 & f_{-1} &= 1
-\end{aligned}
-\right.
-\]
-Daraus kann man  Rekursionsformeln für die Folgen $e_k$ und $f_k$ 
-ablesen, es gilt
+Aus der Rekursionsformel \eqref{buch:endlichekoerper:eqn:kgvrekursion}
+für die Matrizen $K_k$ kann man jetzt eine Rekursionsbeziehung
+für die Folgen $e_k$ und $f_k$ ablesen, es gilt
 \begin{align*}
 e_{k+1} &= q_ke_k + e_{k-1} \\
 f_{k+1} &= q_kf_k + f_{k-1}
-- 
cgit v1.2.1


From 2e2b334e97f9054732a99db70b9f279c56eaa1c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 21:16:46 +0200
Subject: add example from Weitz

---
 buch/chapters/30-endlichekoerper/euklid.tex | 150 ++++++++++++++++++++++++++++
 1 file changed, 150 insertions(+)

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex
index 8aa2f71..15fd88c 100644
--- a/buch/chapters/30-endlichekoerper/euklid.tex
+++ b/buch/chapters/30-endlichekoerper/euklid.tex
@@ -519,6 +519,7 @@ Insbesondere ist der euklidische Algorithmus genauso wie die
 Matrixschreibweise auch für Polynome durchführbar.
 
 \begin{beispiel}
+\label{buch:endlichekoerper:eqn:polynomggt}
 Wir berechnen als Beispiel den grössten gemeinsamen Teiler 
 der Polynome
 \[
@@ -829,5 +830,154 @@ das kleinste gemeinsame Vielfache zweier Polynome zu berechnen.
 Dies wird zum Beispiel bei der Decodierung des Reed-Solomon-Codes in
 Kapitel~\ref{chapter:reedsolomon} verwendet.
 
+\subsubsection{Polynome
+\label{buch:endlichekoerper:eqn:polynomkgv}}
+Im Beispiel auf Seite~\pageref{buch:endlichekoerper:eqn:polynomggt}
+wird der grösste gemeinsame Teiler der Polynome
+\[
+a
+=
+X^4 - 2X^3 -7 X^2 + 8X + 12,
+\qquad
+b = X^4 + X^3 -7X^2 -X + 6
+\]
+berechnet.
+Dies kann jetzt erweitert werden für die Berechnung des kleinsten
+gemeinsamen Vielfachen.
+
+\begin{beispiel}
+Die Berechnungstabelle nur für die Spalten $e_k$ und $f_k$ ergibt
+\begin{center}
+\renewcommand{\arraystretch}{1.4}
+\begin{tabular}{|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}>{$}r<{$}|}
+\hline
+k&   q_k&  e_k&  f_k\\
+\hline
+ &                 &                           0&                           1\\
+0&                1&                           1&                           0\\
+1&-\frac13X-\frac13&                           1&                           1\\
+2& \frac34X+\frac34&           -\frac13X+\frac23&           -\frac13X-\frac13\\
+ &                 &-\frac14X^2+\frac14X+\frac32&-\frac14X^2-\frac12X+\frac34\\
+\hline
+\end{tabular}
+\end{center}
+Daraus kann man ablesen, dass
+\[
+u
+=
+-\frac14X^2+\frac14X+\frac32
+\qquad\text{und}\qquad
+v
+=
+-\frac14X^2-\frac12X+\frac34.
+\]
+Daraus ergibt sich das kleinste gemeinsame Vielfache auf zwei verschiedene Weisen:
+\[
+\operatorname{ggT}(a,b)
+=
+\left\{
+\begin{aligned}
+\textstyle
+(-\frac14X^2+\frac14X+\frac32)&\cdot(X^4 - 2X^3 -7 X^2 + 8X + 12)
+\\
+\textstyle
+(-\frac14X^2-\frac12X+\frac34)&\cdot(X^4 + X^3 -7X^2 -X + 6)
+\end{aligned}
+\right\}
+=
+-\frac14X^6+\frac72X^4-\frac{49}4X^2+9.
+\]
+Die beiden Berechnungsmöglichkeiten stimmen wie erwartet überein.
+\end{beispiel}
+
+\subsubsection{Anwendung: Decodierung des Reed-Solomon-Codes}
+Der Reed-Solomon-Code verwendet Polynome zur Codierung der Daten,
+dies wird in Kapitel~\ref{chapter:reedsolomon} im Detail beschrieben.
+Bei der Decodierung muss der Faktor $u$ für zwei gegebene Polynome
+$n(X)$ und $r(X)$ bestimmt werden.
+Allerdings ist das Polynom $r(X)$ nicht vollständig bekannt, nur die 
+ersten paar Koeffizienten sind gegeben.
+Dafür weiss man zusätzlich, wieviele Schritte genau der Euklidische
+Algorithmus braucht.
+Daraus lässt sich genügend Information gewinnen, um die Faktoren $u$
+und $v$ zu bestimmen.
+Das Video \url{https://youtu.be/uOLW43OIZJ0} von Edmund Weitz
+erklärt die Theorie hinter dieser Teilaufgabe anhand von Beispielen.
+
+\begin{beispiel}
+Wir berechnen also die Faktoren $u$ und $v$ für die beiden Polynome
+\begin{align*}
+n(X)
+&=
+X^12+12
+\\
+r(X)
+&=
+7 X^{11} + 4 X^{10} + X^9 + 12 X^8 + 2 X^7 + 12 X^6 + w(X)
+\end{align*}
+in $\mathbb{F}_13[X]$, wobei $w(X)$ ein unbekanntes Polynom vom Grad $5$ ist. 
+Man weiss zusätzlich noch, dass der euklidische Algorithmus genau drei
+Schritte braucht, es gibt also genau drei Quotienten, die in die
+Berechnung der Zahlen $e_k$ und $f_k$ einfliessen.
 
+Im ersten Schritt des euklidischen Algorithmus ist der Quotient
+$n(X) / r(X)$ zu bestimmen, der Grad $1$ haben muss.
+\begin{align*}
+a_0=n(X)           &= X^12+12
+\\
+b_0=r(X)           &= 7 X^{11} + 4 X^{10} + X^9 + 12 X^8 + 2 X^7 + 12 X^6 + \dots
+\\
+q_0                &= 2X+10
+\\
+r_0 = a_0-b_0\cdot q_0 &= 10X^{10} + 5X^9 + 6X^8 + 8X^7 + \dots
+\\
+a_1 &= 7 X^{11} + 4 X^{10} + X^9 + 12 X^8 + 2 X^7 + 12 X^6 + \dots
+\\
+b_1 &= 10X^{10} + 5X^9 + 6X^8 + 8X^7 + \dots
+\\
+q_1 &= 2X+2
+\\
+r_1 = a_1 - b_1q_1 &= 5X^9 + 10 X^8 + \dots
+\\
+a_2 &= 10X^{10} + 5X^9 + 6X^8 + 8X^7 + \dots
+\\
+b_2 &= 5X^9 + 10 X^8 + \dots
+\\
+q_2 &= 2X+10
+\end{align*}
+Aus den Polynomen $q_k$ können jetzt die Faktoren $u$ und $v$
+bestimmt werden:
+\begin{center}
+\begin{tabular}{|>{$}c<{$}|>{$}r<{$}|>{$}r<{$}|>{$}r<{$}|}
+\hline
+k&   q_k&               e_k&        f_k\\
+\hline
+ &      &                 0&          1\\
+0& 2X+10&                 1&          0\\
+1& 2X+2 &             2X+10&          1\\
+2& 2X+10&        4X^2+11X+8&       2X+2\\
+ &      & 8X^3+10X^2+11X+12& 4X^2+11X+8\\
+\hline
+\end{tabular}
+\end{center}
+Die Faktorisierung des Polynoms
+\[
+u
+=
+8X^3+10X^2+11X+12
+\]
+kann bestimmt werden, indem man alle Zahlen $1,2,\dots,12\in\mathbb{F}_{13}$
+einsetzt.
+Man findet so die Nullstellen $3$, $4$ und $8$, also muss das Polynom
+$u$ faktorisiert werden können als
+\[
+u=
+8(X-3)(X-4)(X-8)
+=
+8X^3 - 120X^2+544X-768
+=
+8X^3 +10X^2+11X+12.
+\qedhere
+\]
+\end{beispiel}
 
-- 
cgit v1.2.1


From 1fda316d0aacd6d068b3af4281871bee5b8e72cd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 13 Apr 2021 21:21:25 +0200
Subject: add rs example

---
 .../30-endlichekoerper/rechnungen/rs.maxima        | 29 ++++++++++++++++++++++
 1 file changed, 29 insertions(+)
 create mode 100644 buch/chapters/30-endlichekoerper/rechnungen/rs.maxima

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/rechnungen/rs.maxima b/buch/chapters/30-endlichekoerper/rechnungen/rs.maxima
new file mode 100644
index 0000000..9116023
--- /dev/null
+++ b/buch/chapters/30-endlichekoerper/rechnungen/rs.maxima
@@ -0,0 +1,29 @@
+n: X^12 + 12;
+r: 7*X^11 + 4*X^10 + X^9 + 12*X^8 + 2*X^7 + 12*X^6;
+
+q0: 2*X+10;
+q1: 2*X+2;
+q2: 2*X+10;
+
+a0: n;
+b0: r;
+r0: expand(a0 - q0 * b0);
+
+a1: b0;
+b1: r0;
+r1: expand(a1 - q1 * b1);
+
+a2: b1;
+b2: r1;
+r2: expand(a2 - q2 * b2);
+
+K: matrix([1,0],[0,1]);
+
+K: expand(K . matrix([q0,1],[1,0]));
+K: expand(K . matrix([q1,1],[1,0]));
+K: expand(K . matrix([q2,1],[1,0]));
+
+u: 8*X^3+10*X^2+11*X+12;
+v: 4*X^2+11*X+8;
+
+factor(u), modulus:13;
-- 
cgit v1.2.1


From b41e50e636a895ad3c425896ef4b3fb7c89dbb3c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Wed, 14 Apr 2021 10:16:15 +0200
Subject: typo

---
 buch/chapters/30-endlichekoerper/euklid.tex  | 6 +++---
 buch/chapters/30-endlichekoerper/galois.tex  | 6 +++---
 buch/chapters/30-endlichekoerper/wurzeln.tex | 2 +-
 3 files changed, 7 insertions(+), 7 deletions(-)

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex
index 15fd88c..094a07a 100644
--- a/buch/chapters/30-endlichekoerper/euklid.tex
+++ b/buch/chapters/30-endlichekoerper/euklid.tex
@@ -909,13 +909,13 @@ Wir berechnen also die Faktoren $u$ und $v$ für die beiden Polynome
 \begin{align*}
 n(X)
 &=
-X^12+12
+X^{12}+12
 \\
 r(X)
 &=
 7 X^{11} + 4 X^{10} + X^9 + 12 X^8 + 2 X^7 + 12 X^6 + w(X)
 \end{align*}
-in $\mathbb{F}_13[X]$, wobei $w(X)$ ein unbekanntes Polynom vom Grad $5$ ist. 
+in $\mathbb{F}_{13}[X]$, wobei $w(X)$ ein unbekanntes Polynom vom Grad $5$ ist. 
 Man weiss zusätzlich noch, dass der euklidische Algorithmus genau drei
 Schritte braucht, es gibt also genau drei Quotienten, die in die
 Berechnung der Zahlen $e_k$ und $f_k$ einfliessen.
@@ -923,7 +923,7 @@ Berechnung der Zahlen $e_k$ und $f_k$ einfliessen.
 Im ersten Schritt des euklidischen Algorithmus ist der Quotient
 $n(X) / r(X)$ zu bestimmen, der Grad $1$ haben muss.
 \begin{align*}
-a_0=n(X)           &= X^12+12
+a_0=n(X)           &= X^{12}+12
 \\
 b_0=r(X)           &= 7 X^{11} + 4 X^{10} + X^9 + 12 X^8 + 2 X^7 + 12 X^6 + \dots
 \\
diff --git a/buch/chapters/30-endlichekoerper/galois.tex b/buch/chapters/30-endlichekoerper/galois.tex
index fbacba6..2f8117e 100644
--- a/buch/chapters/30-endlichekoerper/galois.tex
+++ b/buch/chapters/30-endlichekoerper/galois.tex
@@ -27,7 +27,7 @@ Primzahlpotenz $p^n$ von Elementen haben und die die Basis wichtiger
 kryptographischer Algorithmen sind.
 
 %
-% Arithmetik module $o$
+% Arithmetik modulo $o$
 %
 \subsection{Arithmetik modulo $p$
 \label{buch:subsection:arithmetik-modulo-p}}
@@ -413,7 +413,7 @@ Elemente.
 \begin{figure}
 \centering
 \includegraphics{chapters/30-endlichekoerper/images/binomial2.pdf}
-\caption{Binomialkoeffizienten module $2$ im Pascal-Dreieck.
+\caption{Binomialkoeffizienten modulo $2$ im Pascal-Dreieck.
 Auf den rot hinterlegten Zeilen, die zu Exponenten der Form $2^k$ gehören,
 sind alle Koeffizienten ausser dem ersten und letzten durch $2$ teilbar.
 \label{buch:endliche-koerper:fig:binomial2}}
@@ -423,7 +423,7 @@ sind alle Koeffizienten ausser dem ersten und letzten durch $2$ teilbar.
 \begin{figure}
 \centering
 \includegraphics{chapters/30-endlichekoerper/images/binomial5.pdf}
-\caption{Binomialkoeffizienten module $5$ im Pascal-Dreieck.
+\caption{Binomialkoeffizienten modulo $5$ im Pascal-Dreieck.
 Die von $0$ verschiedenen Reste werden durch Farben dargestellt:
 $1=\text{schwarz}$,
 $2=\text{\color{farbe2}rot}$,
diff --git a/buch/chapters/30-endlichekoerper/wurzeln.tex b/buch/chapters/30-endlichekoerper/wurzeln.tex
index 02429dc..600336c 100644
--- a/buch/chapters/30-endlichekoerper/wurzeln.tex
+++ b/buch/chapters/30-endlichekoerper/wurzeln.tex
@@ -731,7 +731,7 @@ dass
 sf+tm=1.
 \]
 Reduzieren wir modulo $m$, wird daraus $af=1$ in $\Bbbk[X]/m\Bbbk[X]$.
-Das Polynom $a$, reduziert module $m$, ist also die multiplikative
+Das Polynom $a$, reduziert modulo $m$, ist also die multiplikative
 Inverse von $f$.
 
 Bei der praktischen Durchführung des euklidischen Algorithmus ist der 
-- 
cgit v1.2.1


From 509a497c5f138723762ff76e8291e29a897b8ea2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Wed, 14 Apr 2021 13:57:56 +0200
Subject: typos

---
 buch/chapters/90-crypto/arith.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'buch')

diff --git a/buch/chapters/90-crypto/arith.tex b/buch/chapters/90-crypto/arith.tex
index 44eb6bb..dcc31b8 100644
--- a/buch/chapters/90-crypto/arith.tex
+++ b/buch/chapters/90-crypto/arith.tex
@@ -91,7 +91,7 @@ Die Berechnung der Quadratwurzel lässt sich in Hardware effizient
 implementieren.
 
 \begin{algorithmus}
-Der folgende Algorithmsu berechnet $a^k$ in $O(\log_2(k))$
+Der folgende Algorithmus berechnet $a^k$ in $O(\log_2(k))$
 Multiplikationen
 \begin{enumerate}
 \item Initialisiere $p=1$ und $q=a$
-- 
cgit v1.2.1


From 339d3772285a72497f54a4df583cb52be8fb8b8b Mon Sep 17 00:00:00 2001
From: "AzureAD\\JosefReichlin-Bagger" <thomas.reichlin@ost.ch>
Date: Fri, 16 Apr 2021 15:27:36 +0200
Subject: =?UTF-8?q?Name=20ge=C3=A4ndert?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 buch/papers/spannung/main.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'buch')

diff --git a/buch/papers/spannung/main.tex b/buch/papers/spannung/main.tex
index b87a4d0..585a423 100644
--- a/buch/papers/spannung/main.tex
+++ b/buch/papers/spannung/main.tex
@@ -6,7 +6,7 @@
 \chapter{Thema\label{chapter:spannung}}
 \lhead{Thema}
 \begin{refsection}
-\chapterauthor{Hans Muster}
+\chapterauthor{Adrian Schuler und Thomas Reichlin}
 
 Ein paar Hinweise für die korrekte Formatierung des Textes
 \begin{itemize}
-- 
cgit v1.2.1


From a11e15a68ec7e049f3d724e5e4042317fcbecc21 Mon Sep 17 00:00:00 2001
From: Nao Pross <np@0hm.ch>
Date: Fri, 16 Apr 2021 21:20:31 +0200
Subject: Create .gitignore for buch/

It is a bit annoying to get that huge list of untracked aux files every
time `$ git status' runs
---
 buch/.gitignore | 12 ++++++++++++
 1 file changed, 12 insertions(+)
 create mode 100644 buch/.gitignore

(limited to 'buch')

diff --git a/buch/.gitignore b/buch/.gitignore
new file mode 100644
index 0000000..4600c1a
--- /dev/null
+++ b/buch/.gitignore
@@ -0,0 +1,12 @@
+buch*.aux
+buch*.bbl
+buch*.bib
+buch*.blg
+buch*.idx
+buch*.ilg
+buch*.ind
+buch*.log
+buch*.out
+buch*.pdf
+buch*.run.xml
+buch*.toc
-- 
cgit v1.2.1


From 432c3bebedb451bae53eb37e2078eb7de28ece79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <andreas.mueller@ost.ch>
Date: Tue, 20 Apr 2021 12:42:49 +0200
Subject: typos

---
 buch/chapters/30-endlichekoerper/euklid.tex | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'buch')

diff --git a/buch/chapters/30-endlichekoerper/euklid.tex b/buch/chapters/30-endlichekoerper/euklid.tex
index 094a07a..0bf3016 100644
--- a/buch/chapters/30-endlichekoerper/euklid.tex
+++ b/buch/chapters/30-endlichekoerper/euklid.tex
@@ -681,7 +681,7 @@ Q(q_0)^{-1}
 Q(q_1)^{-1}
 \dots
 Q(q_{n-1})^{-1}
-Q(q_n)
+Q(q_n)^{-1}
 \begin{pmatrix}\operatorname{ggT}(a,b)\\0\end{pmatrix}.
 \]
 Eine mögliche Lösung für die Matrix $K$ in
-- 
cgit v1.2.1