{VERSION 5 0 "HP RISC UNIX" "5.0" } {USTYLETAB {CSTYLE "Maple Input" -1 0 "Courier" 0 1 255 0 0 1 0 1 0 0 1 0 0 0 0 1 }{CSTYLE "2D Math" -1 2 "Times" 0 1 0 0 0 0 0 0 2 0 0 0 0 0 0 1 }{CSTYLE "2D Comment" 2 18 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } {CSTYLE "" -1 256 "" 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 257 "" 0 1 0 0 0 0 2 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 258 "" 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }{CSTYLE "" -1 259 "Helvetica" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }{PSTYLE "Normal" -1 0 1 {CSTYLE "" -1 -1 "" 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE " " 0 256 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 257 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 258 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 259 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 260 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 261 1 {CSTYLE " " -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 262 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 263 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 264 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 265 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 } 3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 266 1 {CSTYLE "" -1 -1 " " 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 } {PSTYLE "" 0 267 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 268 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 269 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 270 1 {CSTYLE "" -1 -1 "" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 271 1 {CSTYLE "" -1 -1 "" 1 14 0 0 0 0 1 0 0 0 0 0 0 0 0 1 }0 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 272 1 {CSTYLE " " -1 -1 "Helvetica" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }{PSTYLE "" 0 273 1 {CSTYLE "" -1 -1 "Helvetica" 1 24 0 0 0 0 0 0 0 0 0 0 0 0 0 1 }3 0 0 -1 -1 -1 0 0 0 0 0 0 -1 0 }} {SECT 0 {EXCHG {PARA 256 "" 0 "" {TEXT -1 28 "K\366rper von Zweipotenz ordnung" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "restart;" }}}{EXCHG {PARA 264 "" 0 "" {TEXT -1 51 "Die Prozedur Pol ynom(N) konstruiert ein Polynom in " }{XPPEDIT 18 0 "alpha;" "6#%&alph aG" }{TEXT -1 51 ", das die Bin\344rziffern von N als Koeffizienten ha t." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 185 "Polynom := proc(N::nonnegint )\nlocal a, i, l, s; global alpha;\ns := convert(convert(N, binary), s tring);\nl := length(s);\na := sscanf(s, cat(\"%1d\"$l));\nsum(a[i]*al pha^(l-i), i=1..l);\nend;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 26 "Polynom(10); # binaer 1010" }}}{EXCHG {PARA 257 "" 0 "" {TEXT -1 213 "Die Prozedur F2hoch(N) untersucht alle Polynome vom Grad N \374be r dem K\366rper mit zwei Elementen auf Irreduzibilit\344t und gibt im \+ reduziblen Fall eine Faktorisierung an. Sie wird f\374r gro\337e N seh r schnell sehr langsam." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 189 "F2hoch := proc(N)\nlocal i, P, Q;\nfor i from 0 to 2 ^N-1 do\nP := Polynom(i);\nQ := Factor(alpha^N + P) mod 2;\nprint(sort (alpha^N+P) =\n`if`(Irreduc(alpha^N+P) mod 2, \"irreduzibel\", Q))\nod :\nend:" }}}{EXCHG {PARA 258 "" 0 "" {TEXT -1 156 "Die Prozedur Polyno me(N) berechnet alle irreduziblen Polynome vom Grad N \374ber dem K \366rper mit zwei Elementen. Auch sie wird mit wachsendem N schnell la ngsam." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 207 "Polyn ome := proc(N::posint)\nlocal i, L, P; global alpha;\nP := op([]);\nL \+ := Factors(alpha^(2^N-1)-1) mod 2;\nfor i from 1 to nops(L[2]) do\nif \+ degree(L[2][i][1], alpha) = N then P := P, L[2][i][1] fi od;\nP\nend; " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 75 "for i from 2 to 6 do\nN := i; Anzahl := nops([Polynome(i)]);\nPolynome(i) od;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 217 "for N from 2 to 15 do\nAnzahl := n ops([Polynome(N)]);\nAnteil := evalf(100 * Anzahl/2^N);\nprintf(\"Es g ibt %5d irreduzible Polynome vom Grad %2d, das sind %4.1f%% aller Poly nome vom Grad %2d\\n\", Anzahl, N, Anteil, N) od:" }}}{EXCHG {PARA 259 "" 0 "" {TEXT -1 212 "Die Prozedur poly(v) ordnet einem Vektor v d as Polynom in x zu, dessen Koeffizienten die Komponenten von v sein. D ie erste Komponente des Vektors entsprocht der h\366chsten x-Potenz, d ie letzte dem konstanten Glied." }{TEXT 256 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 108 "poly := proc(v)\nlocal i,d; global alpha;\nd := lina lg[vectdim](v);\nsort(sum(v[i]*alpha^(d-i), 'i'=1..d))\nend;" }}} {EXCHG {PARA 260 "" 0 "" {TEXT -1 143 "Die Prozedur bits ordnet umgeke hrt einem Polynom in x die Liste seiner Koeffizienten zu. Das Polynom \+ wird vorher modulo der globalen Variablen " }{TEXT 257 9 "Relation " } {TEXT -1 26 "und modulo zwei reduziert." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 176 "bits := proc(f::polynom(integer, alpha))\nlocal i; global alp ha;\n[seq(coeff(Rem(f, Relation, alpha) mod 2, alpha, degree(Relation, alpha)-i),\ni=1..degree(Relation, alpha))]\nend;" }}}{EXCHG {PARA 261 "" 0 "" {TEXT -1 69 "Die Prozedur plus addiert zwei als Bitvektore n gegebene Elemente von " }{XPPEDIT 18 0 "F[2^n];" "6#&%\"FG6#)\"\"#% \"nG" }{TEXT -1 53 ". Plus gibt zus\344tzlich Kommentare zum Rechengan g aus." }{MPLTEXT 1 0 1 "\n" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 585 "plu s := proc(b1, b2)\nif linalg[vectdim](b1) <> linalg[vectdim](b2) then \nERROR(\"Die beiden Vektoren m\374ssen dieselbe L\344nge haben\");\nf i;\nbits(poly(b1) + poly(b2))\nend;\n\nPlus := proc(b1, b2)\nlocal p1, p2;\nif linalg[vectdim](b1) <> linalg[vectdim](b2) then\nERROR(\"Die \+ beiden Vektoren m\374ssen dieselbe L\344nge haben\");\nfi;\np1 := poly (b1);\np2 := poly(b2); \nprintf(\"%a entspricht dem Polynom %a\\n\", b 1, p1);\nprintf(\"%a entspricht dem Polynom %a\\n\", b2, p2);\nprintf( \"Die Summe der beiden Polynome ist %a\\n\", sort(p1 + p2) mod 2);\npr intf(\"Dies entspricht dem Element \\n\");\nprint(bits(p1 + p2))\nend; " }}}{EXCHG {PARA 262 "" 0 "" {TEXT -1 60 "mal und Mal machen das Ents prechende f\374r die Multiplikation." }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 737 "mal := proc(b1, b2)\nif linalg[vectdim](b1) <> linalg[vectdim]( b2) then\nERROR(\"Die beiden Vektoren m\374ssen dieselbe L\344nge habe n\");\nfi;\nbits(poly(b1) * poly(b2))\nend;\n\nMal := proc(b1, b2)\nlo cal p1, p2, r; global alpha;\nif linalg[vectdim](b1) <> linalg[vectdim ](b2) then\nERROR(\"Die beiden Vektoren m\374ssen dieselbe L\344nge ha ben\");\nfi;\n\np1 := poly(b1);\np2 := poly(b2); \nprintf(\"%a entspri cht dem Polynom %a\\n\", b1, p1);\nprintf(\"%a entspricht dem Polynom \+ %a\\n\", b2, p2);\nprintf(\"Das Produkt der beiden Polynome ist\\n\"); \nprint(sort(expand((p1 * p2) mod 2), alpha));\nr := Rem(p1*p2, Relati on, alpha) mod 2;\nprintf(\"Bei Division durch %a bleibt ein Rest von \\n\",\nRelation);\nprint(r); \nprintf(\"Dieser entspricht dem Elemen t \\n\");\nprint(bits(r))\nend;" }}}{EXCHG {PARA 263 "" 0 "" {TEXT -1 115 "Die Prozedur durch(b1, b2) berechnet den Quotienten b1/b2 f\374r \+ zwei als Bitfolgen dargestellte Elemente des K\366rpers " }{XPPEDIT 18 0 "F[2^n];" "6#&%\"FG6#)\"\"#%\"nG" }{TEXT -1 1 "." }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 343 "durch := proc(b1, b2)\nloca l i, n, q, s; global alpha;\nn := linalg[vectdim](b1);\nif n <> linalg [vectdim](b2) then\nERROR(\"Die beiden Vektoren m\374ssen dieselbe L \344nge haben\");\nfi;\nif b2 = [0$n] then\nERROR(\"Division durch Nul l!\")\nelse\nGcdex(sum(b2[i]*alpha^(n-i), i=1..n), Relation, alpha, q, s) mod 2;\nbits(q*sum(b1[i]*alpha^(n-i), i=1..n))\nfi\nend;" }}} {EXCHG {PARA 265 "" 0 "" {TEXT -1 29 "Der K\366rper mit vier Elementen " }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "F2ho ch(2);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "Relation := alpha ^2+alpha+1;" }}}{EXCHG {PARA 266 "" 0 "" {TEXT -1 35 "Vektordarstellun g der vier Elemente" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "bits(0);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 8 "bits(1); " }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "bits(alpha);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "bits(alpha+1);" }}}{EXCHG {PARA 267 "" 0 "" {TEXT 258 35 "Reduktion und Vektordarstellung von" } {TEXT -1 1 " " }{XPPEDIT 18 0 "alpha^2;" "6#*$%&alphaG\"\"#" } {MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 14 "bits(alpha^2); " }}}{EXCHG {PARA 268 "" 0 "" {TEXT -1 32 "Polynomdarstellung eines Ve ktors" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "poly([1 ,1]);" }}}{EXCHG {PARA 269 "" 0 "" {TEXT -1 36 "Rechnen im K\366rper m it vier Elementen" }{MPLTEXT 1 0 0 "" }}{PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "Plus([1,1], [0,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 19 "Plus([1,1], [1,0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 " Mal([1,0], [1,0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 18 "Mal([ 1,1], [1,0]);" }}}{EXCHG {PARA 270 "" 0 "" {TEXT 259 27 "Der K\366rper mit 64 Elementen" }{MPLTEXT 1 0 0 "" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 10 "F2hoch(6);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 12 "Polynome(6);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 45 "Relatio n := alpha^6+alpha+1; # zum Beispiel" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 35 "Plus([0,1,1,0,1,0], [1,1,0,0,1,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 34 "Mal([1,0,0,1,1,1], [0,1,0,0,1,0]);" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "z := [0$5,1]:" }}}{EXCHG {PARA 271 "" 0 "" {TEXT -1 75 "Die Potenzen von sind die s\344mtliche n von Null verschiedenen K\366rperelemente" }{MPLTEXT 1 0 0 "" }}} {EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 67 "for i from 1 to 63 do\nz := \+ mal([0$4,1,0], z): print(alpha^i=z);\nod:" }}}{EXCHG {PARA 272 "" 0 " " {TEXT -1 28 "Der K\366rper mit 256 Elementen" }}}{EXCHG {PARA 0 "> \+ " 0 "" {MPLTEXT 1 0 12 "Polynome(8);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 71 "Relation := alpha^8 + alpha^5 + alpha^3 + alpha^2 + 1 ; # zum Beispiel" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 42 "Mal([ 1,0,1,0,1,0,1,0], [0,1,0,0,1,1,0,1]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 13 "z := [0$7,1]:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 68 "for i from 1 to 255 do\nz := mal([0$6,1,0], z): print(alpha^i= z);\nod:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 28 "durch([0$7,1], \+ [0$6, 1, 0]);" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 20 "Mal(%, [0$ 6, 1, 0]);" }}}{EXCHG {PARA 273 "" 0 "" {TEXT -1 58 "Anzahl der irredu ziblen Polynome eines vorgegebenen Grads " }}}{EXCHG {PARA 0 "> " 0 " " {MPLTEXT 1 0 75 "for i from 2 to 6 do\nN := i; Anzahl := nops([Polyn ome(i)]);\nPolynome(i) od;" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 217 "for N from 2 to 15 do\nAnzahl := nops([Polynome(N)]);\nAnteil := \+ evalf(100 * Anzahl/2^N);\nprintf(\"Es gibt %5d irreduzible Polynome vo m Grad %2d, das sind %4.1f%% aller Polynome vom Grad %2d\\n\", Anzahl, N, Anteil, N) od:" }}}{EXCHG {PARA 0 "> " 0 "" {MPLTEXT 1 0 0 "" }}}} {MARK "1 0 0" 8 }{VIEWOPTS 1 1 0 1 1 1803 1 1 1 1 }{PAGENUMBERS 0 1 2 33 1 1 }