\mnb150ÿ{\rtf1\ansi\deff0\deftab720{\fonttbl{\f0\fswiss MS Sans Serif;}{\f1\froman\fcharset2 Symbol;}{\f2\fswiss\fprq2 System;}{\f3\fswiss\fprq2 Arial;}{\f4\fmodern\fprq1 Courier New;}{\f5\fswiss\fprq2 Verdana;}{\f6\fswiss\fprq2 Helvetica;}}
{\colortbl\red0\green0\blue0;\red0\green0\blue255;\red0\green128\blue0;\red255\green0\blue0;}
\deflang1031\pard\ri4\plain\f4\fs20\cf0\b ________________________________________________________________________________
\par
\par \plain\f4\fs20\cf0 Inhalt....: Erzeugung und Testen von Zufall
\par Kategorie.: Arbeitsblatt
\par Mathematik: Stochastik, Statistik
\par MuPAD.....: 3.0.0
\par Datum.....: 2002-01-17
\par Autoren...: Julia Falek
\par Funktionen: mod, plot, plot::Point2d, Color,
\par \plain\f4\fs20\cf0\b ________________________________________________________________________________
\par \plain\f3\fs36\cf0\b
\par \plain\f3\fs40\cf0\b Selbstgemachter Zufall?
\par Der lineare Kongruenzgenerator
\par \plain\f3\fs22\cf0
\par \plain\f3\fs24\cf2 Hier soll gezeigt werden, wie man selbst Zufall erzeugen kann und wie man erkennen kann,
\par ob die so erzeugten Zahlen auch wirklich zuf\'e4llig aussehen. Hier m\'f6ge man sich an die wichtige
\par gen der Kryptographie erinnern.
\par \plain\f3\fs28\cf0
\par Wir definieren zun\'e4chst folgende Berechnungsvorschrift:
\par \plain\f3\fs22\cf0 {\pict\wmetafile8\picw4824\pich972\picscalex99\picscaley99\picwgoal2751\pichgoal555
010009000003240400000A001C0000000000050000000B0200000000050000000C02CC03D81203
0000001E00050000000C02D303F512050000000B0200000000030000001E00050000000C02D803
0A13050000000B0200000000050000000B0200000000030000001E00050000000C02DE03281305
0000000B0200000000050000000B0200000000050000000B0200000000030000001E0005000000
0C02E4033D13050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00050000000C02EB035C13050000000B0200000000050000000B02
00000000050000000B0200000000050000000B0200000000050000000B0200000000030000001E
00050000000C02F0037113050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B0200000000050000000B0200000000030000001E0005
0000000C02F7039113050000000B0200000000050000000B0200000000050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00030000001E00050000000C02FC03A513050000000B0200000000050000000B02000000000500
00000B0200000000050000000B0200000000050000000B0200000000050000000B020000000005
0000000B0200000000050000000B0200000000030000001E00050000000C020404C61305000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000050000000B0200000000050000000B0200000000050000000B02000000000500
00000B0200000000030000001E00050000000C020804D813050000000B0200000000050000000B
0200000000050000000B0200000000050000000B0200000000050000000B020000000005000000
0B0200000000050000000B0200000000050000000B0200000000050000000B0200000000050000
000B0200000000030000001E00030000001E00050000000C02D8012309050000000B0200000000
050000000B0200000000050000000B0200000000050000000B0200000000050000000B02000000
00050000000B0200000000050000000B0200000000050000000B0200000000050000000B020000
0000050000000B0200000000050000000B020000000008000000FA020000000000000000000004
0000002D0100001C000000FB0238FF00000000000090010000000107000000417269616C000000
F7090A1238E91200D89FF177E19FF1772020F3775C0A663F040000002D01010005000000020101
000000050000000102FFFFFF00050000002E011800000005000000090200000000040000000801
00001C000000FB0210FF0000000000009001000000010700000054696D6573204E657720526F6D
616E00D89FF177E19FF1772020F3775C0A663F040000002D0102000B00000026060F000C004D61
74685479706500007D001C000000FB0210FF0000000000009001010000010700000054696D6573
204E657720526F6D616E00D89FF177E19FF1772020F3775C0A663F040000002D0103001C000000
FB0256FF0000000000009001010000010700000054696D6573204E657720526F6D616E00D89FF1
77E19FF1772020F3775C0A663F040000002D0104001C000000FB0256FF00000000000090010000
00010700000054696D6573204E657720526F6D616E00D89FF177E19FF1772020F3775C0A663F04
0000002D010500040000002D010300040000002D010200040000002D010300040000002D010400
040000002D0105001C000000FB0256FF0000000000009001000000020700000053796D626F6C00
00DD0B0AA638E91200D89FF177E19FF1772020F3775C0A663F040000002D010600040000002D01
05001C000000FB0210FF0000000000009001000000020700000053796D626F6C0000250B0A2C38
E91200D89FF177E19FF1772020F3775C0A663F040000002D010700040000002D01030004000000
2D010700040000002D010300040000002D010200040000002D010700040000002D010200040000
002D0105000500000009020000FF00040000002D010300070000002105010078013B016B000400
00002D010400070000002105010069017001D600040000002D01070007000000210501003D013B
014D01040000002D010300070000002105010061013B011902040000002D010700070000002105
0100D7013B01C102040000002D010200040000002D010500040000002D01030007000000210501
0078013B013403040000002D0104000700000021050100690172019F03040000002D0106000700
0000210501002D017201E703040000002D0105000700000021050100310172015E04040000002D
01070007000000210501002B013B01EF04040000002D010300070000002105010062013B01AF05
040000002D01020007000000210501006D013B01630607000000210501006F013B011B07070000
002105010064013B019307040000002D01030007000000210501006E013B01470808000000FA02
00000000000000000000040000002D0108001C000000FB021000070000000000BC020000000001
02022253797374656D0000160B0A4F38E91200D89FF177E19FF1772020F3775C0A663F04000000
2D010900040000002701FFFF04000000F001000004000000F001010004000000F0010200040000
00F001030004000000F001040004000000F001050004000000F001060004000000F00107000400
00002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF04
0000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF040000002701FFFF
040000002701FFFF030000000000
}\plain\f3\fs22\cf0 \plain\f3\fs28
\par Damit ist festgelegt, dass die erzeugten Zahlen nur zwischen 0 und n-1 liegen
\par k\'f6nnen.
\par
\par Wie zuf\'e4llig die berechneten Zahlen aussehen, h\'e4ngt von der Wahl der
\par Parameter ab. Wir definieren nun eine Prozedur, die uns eine Ausgabe der
\par L\'e4nge \plain\f4\fs28\cf3 m\plain\f3\fs28 eines linearen Kongruenzgenerators f\'fcr beliebige Parameter \plain\f4\fs28\cf3 a, b,
\par n\plain\f3\fs28 und\plain\f4\fs28 \plain\f4\fs28\cf3 x0\plain\f3\fs28 berechnet.\plain\f5\fs24
\par \plain\f3\fs22\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}LKG := proc(x0, a, b, n, m)
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf3 local x, i;
\par begin
\par x := [0 $ m];
\par x[1] := x0;
\par for i from 2 to m do
\par x[i] := a * x[i-1] + b mod n;
\par end_for;
\par return(x);
\par end_proc:
\par \pard\ri4\plain\f3\fs28
\par \'dcbergeben wir der Prozedur nun die Saat x\plain\f3\fs28\dn4 0\plain\f3\fs28 = 1 und die Parameter a = 2,
\par b = 3, n = 13, so erhalten wir folgende Ausgabe.
\par \plain\f5\fs24
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}LKG(1, 2, 3, 13, 30)
\par \pard\ri4\plain\f3\fs28
\par Wir k\'f6nnen erkennen, dass die Folge zyklisch ist, d.h. nach jeweils 12
\par Zahlen wiederholen sich die Zahlen in gleicher Reihenfolge. Damit ist klar,
\par dass diese Wahl der Parameter nicht sehr gl\'fccklich war.
\par
\par Schaut man kurz auf die ausgegebene Liste der Zahlen, so erkennt man
\par sofort, dass die Folge berechnet worden und keinesfalls zuf\'e4llig ist. Ein
\par besseres Ergebnis erh\'e4lt man bei Eingabe der folgenden Parameter:
\par \plain\f5\fs24
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}LKG(143, 1896, 467, 1301, 30)
\par \pard\ri4\plain\f3\fs28
\par Diese Zahlenfolge sieht zuf\'e4llig aus. Die so erzeugten Pseudozufalls-
\par zahlen zwischen 0 und 1300 werden nun zu Pseudozufallszahlen aus dem
\par Intervall [0, 1[ transformiert, indem wir jedes Listenelement durch 1301 teilen.
\par Wir wollen graphisch veranschaulichen, wie zuf\'e4llig diese transformierten
\par Zahlen tats\'e4chlich sind. \plain\f3\fs28\cf0
\par \plain\f3\fs22\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}L := LKG(143, 1896, 467, 1301, 500):
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf3 Punkte := [0 $ 499]:
\par for i from 1 to 499 do
\par Punkte[i] := plot::Point2d(L[i]/1301, L[i+1]/1301, Color = RGB::Black);
\par end_for:
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}plot(op(Punkte), Color = RGB::Black)
\par \pard\ri4\plain\f3\fs28 Die Punkte scheinen ziemlich gleichverteilt im Einheitsquadrat zu liegen.
\par Wir nehmen daher an, dass der lineare Kongruenzgenerator mit obigen
\par Parametern ziemlich \'84guten" Zufall simuliert.
\par
\par Zum Vergleich stellen wir auch den ersten Generator mit den Parametern
\par a = 2, b = 3 und n = 13 graphisch dar:\plain\f5\fs24
\par \plain\f3\fs28\cf0
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}L := LKG(1,2,3,13,500):
\par \pard\li600\ri1\fi-300\plain\f4\fs28\cf3 Punkte := [0 $ 499]:
\par for i from 1 to 499 do
\par Punkte[i] := plot::Point2d(L[i]/13, L[i+1]/13, Color = RGB::Black);
\par end_for:
\par \pard\li300\ri5\fi-300{\*\pn\pnlvlblt\pnf1\pnindent300{\pntxtb\'b7}}\plain\f4\fs28\cf3 {\pntext\f1\'b7\tab}plot(op(Punkte), Color = RGB::Black)
\par \pard\ri4\plain\f3\fs28
\par Die Punkte liegen auf drei parallelen Geraden -- keine gute Wahl, denn
\par wer wird schon behaupten, dass diese Punkte zuf\'e4llig sind.\plain\f4\fs20\cf0\b
\par _______________________________________________________________________________
\par \plain\f3\fs22\cf0
\par \plain\f3\fs22\cf2\b Anmerkungen:
\par \plain\f3\fs20\cf2\b 1\plain\f3\fs20\cf2 . Weitere Anregungen finden Sie in der Buchreihe \plain\f3\fs20\cf3 Mathematik 1 x anders\plain\f3\fs20\cf2 . In dieser Reihe
\par wird eine Vielzahl unterschiedlichster mathematischer Probleme mit MuPAD gel\'f6st. Die
\par B\'fccher k\'f6nnen unter \plain\f6\fs20\cf1 www.schule.mupad.de/literatur\plain\f3\fs20\cf2 kostenfrei kopiert werden. \plain\f3\fs20\cf1
\par \plain\f4\fs20\cf0\b _______________________________________________________________________________
\par
\par
\par }