From: Peter Schaefer Date: Sun, 10 Jun 2012 14:41:34 +0000 (+0200) Subject: [py] qmult X-Git-Url: https://git.leopard-lacewing.eu/?a=commitdiff_plain;h=6df3d5a87ba88800aa49c8dba2b7fc8aa04a5f89;p=zahlenTA.git [py] qmult UE5 Aufgabe + erste Lösungen --- diff --git a/UE/lib.py b/UE/lib.py index 27638e3..245f758 100644 --- a/UE/lib.py +++ b/UE/lib.py @@ -340,4 +340,29 @@ def jacobi_tex(z, n): return d -#print jacobi_tex(1215,1381) +#Square and Multiply (x,k,*,e) +def sqmult(x,k,func,e): + y = e; + while k: + if(k%2): + y = func(y,x) + x = func(x,x) + k = k/2 + return y + +#Square and Multiply (x,k,*,e) mit TeX Ausgabe +def sqmult_tex(x,k,func,e): + y = e; + print "\\begin{array}{cccc}" + print " x & y & k & k \\mod 2\\\\\\hline" + print " ", x, "&" , y , "&" , k, "&" , k%2, "\\\\" + while k: + if(k%2): + y = func(y,x) + x = func(x,x) + k = k/2 + print " ", x, "&" , y , "&" , k, "&" , k%2, "\\\\" + print "\\end{array}" + return y + + diff --git a/UE/ue5.pdf b/UE/ue5.pdf new file mode 100644 index 0000000..331ada5 Binary files /dev/null and b/UE/ue5.pdf differ diff --git a/UE/ue5.tex b/UE/ue5.tex new file mode 100644 index 0000000..ffa9081 --- /dev/null +++ b/UE/ue5.tex @@ -0,0 +1,127 @@ +\documentclass[a4paper,10pt,fleqn]{scrartcl} +\usepackage{template} +\usepackage{boxedminipage} + +\begin{document} + +% \thispagestyle{plain} +% \tableofcontents + +\uebung{5}{13. Juni 2012} + +\aufgabe{25} +{$p=2^{43112609}-1$ ist die zur Zeit größte bekannte Primzahl. Wie kann man ihre Stellenanzahl am einfachsten berechnen und was sind ihre $3$ Endziffern?} + +\begin{align} + 2^{43112609} \in (\Z_{1000}, * \mod 1000, 1) \text{, d.h. }x=2, k=43112609 +\end{align} +\begin{center} +$\begin{python} +import lib +lib.sqmult_tex(2,43112609,lambda x,y:(x*y)%1000,1) +\end{python}$ +\end{center} +\begin{align} + p=2^{43112609} \mod 1000 &\equiv 512 \Rightarrow 2^{43112609}-1 \mod 1000 \equiv 511 +\end{align} + + +\aufgabe{26} +{Sei $(H,*,e)$ ein Monoid mit Einselement $e$, d.h. $*$ ist eine assoziative binäre Operation mit $e$ als Einselement. Um für $x \in H$ und ein $k \in \N$ die Potenz $x^{k} \in H$ zu berechnen kann man folgende Variante des ``Sqaure and Multiply''-Algorithmus benutzen. + \begin{enumerate} + \item Setze $y \leftarrow e$. + \item Falls $k=0$, dann return $y$. + \item Falls $k$ ungerade ist, setze $y \leftarrow y * x$. + \item Setze $x \leftarrow x*x, k \leftarrow \lfloor k/2 \rfloor$ und mache weiter bei $2$. + \end{enumerate} +Man verwende ihn speziell zur Berechnung von $23 \cdot 41$ in $(\N,+,0)$, sowie zur Berechnung von $23^{41} \mod 100$ in $(\Z_{100},* \mod 100,1)$. (Wie kann man mit Hilfe von $\varphi(100)=40$ das Ergebnis der letzten Rechnung im Kopf überprüfen?)} +\begin{align} + 23 \cdot 41 \in (\N,+,0) \text{, d.h. }x=23, k=41 +\end{align} + +\begin{center} +$\begin{python} +import lib +lib.sqmult_tex(23,41,lambda x,y:(x+y),0) +\end{python}$ +\end{center} + +\begin{align} + 23^{41} \in (\Z_{100}, * \mod 100, 1) \text{, d.h. }x=23, k=41 +\end{align} + +\begin{center} +$\begin{python} +import lib +lib.sqmult_tex(23,41,lambda x,y:(x*y)%100,1) +\end{python}$ +\end{center} + +Im Kopf: +\begin{equation} + \label{eq:0} + \gcd(23,100)=1 \stackrel{\textsl{kl. Fermat}} \implies 23^{\varphi(100)} \equiv 1 \mod 100 \implies 23^{41} \equiv 23 \mod 100 +\end{equation} + +\aufgabe{27} +{Man zeige mit Hilfe des Satzes von P\'{e}pin, dass die Fermatsche Zahl $F_{3}$ prim ist, wobei insbesondere die Reduktion $\mod F_{3}$ in der Weise durchzuführen sind, dass man die Quotienten und Reste bei der Division durch $2^{8}$ in geeigneter Weise verwendet.} +$F_{3}=2^{2^{3}}+1=2^{8}+1=257$. Daher: +\begin{subequations} +\begin{align} + \label{eq:1} + 3 \\ +\rightsquigarrow 9 \mod F_{3}\\ +\rightsquigarrow 81 \mod F_{3} \\ +\rightsquigarrow 81\cdot 81=25*257+161 \Rightarrow A=25, B=161 \rightsquigarrow B-A \equiv 161-25=136 \mod F_{3}\\ +\rightsquigarrow 136*136=72*257+64, A=72,B=64 \rightsquigarrow B-A \equiv 64-72 \equiv -8 \equiv 249 \mod F_{3}\\ +\rightsquigarrow 249*249=242*257+49, A=242, B=49 \rightsquigarrow B-A \equiv 49-242 \equiv -193 \equiv 64 \mod F_{3} \\ +\rightsquigarrow 64*64=16*257, A=16, B=0 \rightsquigarrow B-A \equiv -16 \equiv 241 \mod F_{3}\\ +\rightsquigarrow 241*241=226*257+225, A=226, B=225 \rightsquigarrow B-A \equiv 225-226 \equiv -1 \mod F_{3} +\end{align} +\end{subequations} + +\aufgabe{28} +{Man zeige für die Zahl $N=971$ mit Hilfe des Satzes von Brillhart-Lehmer-Selfridge, dass sie prim ist, indem man für $N-1$ nur die Kenntnis der einstelligen Primfaktoren voraussetzt.} +Es gilt $N-1=970=2\cdot 5 \cdot 97$, d.h. $r=2$, und man setzt $p_{1}:=2, p_{2}:=5 \implies F=2\cdot 5=10$. \\ +Überprüfe Voraussetzungen aus Satz $2.22$: $N-1=R \cdot F \implies R=97$. Weiters gilt $\gcd(F,R)=1$. +\begin{subequations} + \begin{align} + a_{1}:=2: \quad 2^{970} \equiv 1 \mod 971, \gcd(2^{((N-1)/2)}-1,N)=\gcd(970,971)=1\\ +a_{2}:=2: \quad 2^{970} \equiv 1 \mod 791, \gcd(2^{((N-1)/5)}-1,N)=\gcd(1,971)=1 + \end{align} +\end{subequations} +Daher sind alle Bedingungen des Satzes $2.22$ erfüllt. \\ +Es gilt +\begin{equation} +\sqrt[3]{N}=9.90238353655558 < F < 31.16087290176577=\sqrt{N} +\end{equation} +Weiters erhält man sofort: +\begin{equation} + 971=c_{2}F^{2}+c_{1}F+1=9*F^{2}+7\cdot F +1 \implies c_{2}=9, c_{1}=7 +\end{equation} +Nun gilt: +\begin{equation} + c_{1}^{2}-4c_{2}=7^{2}-4\cdot 9=49-4*9=49-36=13 +\end{equation} +ist kein Quadrat, daher ist $N$ nach dem Satz von Brillhart-Lehmer-Selfridge prim. +\aufgabe{29} +{Man finde eine explitzite Formel für die Folge $s_{n}$ im Lucas-Lehmer-Test, indem man zeigt, dass sich diese Folge als Teilfolge einer Lucasfolge $V_{n}$ mit gewissen Parametern P und Q interpretieren lässt. (Hinweis: Man gehe dazu aus von der Formel $V_{2k}=V_{k}^{2}-2Q^{k}$ für alle $k \in \N$).} +$V_{n}=\alpha^{n}+\beta^{n}$, $V_{0}=2, V_{1}=P$\\ +$Q=1$ zwingend aus Rekursionsformel aus der Theorie der Lucas-Folgen. P=4? Dann gilt +\begin{equation} +D=P^{2}-4Q=4^{2}-4\cdot 1=16-4=12 \neq 0 +\end{equation} +Die sich aus dem Lucas-Lehmer-Test ergebende Folge ist daher die Folge $V_{2j}, j \in \N^{*}$. +\aufgabe{30} +{Man wende den Lucas-Lehmer Test auf die Mersenn'sche Zahl $M_{7}=2^{7}-1=127$ an, wobei insbesondere die Reduktion $\mod M_{7}$ in der Weise durchzuführen sind, dass man die Quotienten und Reste bei der Division durch $2^{7}$ in geeigneter Weise verwendet.} +$p=7$ ist eine ungerade Primzahl, daher ist der Lucas-Lehmer-Test anwendbar, setze $s_{1}:=4$. +\begin{subequations} + \begin{align} + s_{2}=16-2=14\\ + s_{3}=14^{2}-2=194=1\cdot 127+66 , A=1, B=66 ,A+B=1+6=7 \equiv 67 \mod M_{7} \\ + s_{4}=67^{2}-2=4487=35\cdot 127+7, A=35, B=7, A+B=35+7=42 \equiv 42 \mod M_{7} \\ +s_{5}=42^{2}-2=1762=13\cdot 127+98 , A=13, B=98 , A+B=13+98=111 \equiv 111 \mod M_{7} \\ +s_{6}=111^{2}-2=12319=96\cdot 127+31, A=96, B=31, A+B=96+31=127 \equiv 0 \mod M_{7} + \end{align} +\end{subequations} +\end{document} \ No newline at end of file diff --git a/ZthUe5x.pdf b/ZthUe5x.pdf new file mode 100755 index 0000000..b7e0306 Binary files /dev/null and b/ZthUe5x.pdf differ