Satz von Carmichael

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Der Satz von Carmichael (nach Robert Daniel Carmichael, 1910) ist eine zahlentheoretische Aussage über eine spezielle Klasse von einfach zu programmierenden Zufallszahlengeneratoren und liefert Kriterien, die dabei helfen, Generatoren von möglichst guter Qualität zu wählen.

Aussage des Satzes[Bearbeiten]

Sei eine natürliche Zahl m vorgegeben (der sog. Modul). Zu jeder ganzen Zahl a als Faktor und jeder ganzen Zahl y_0 im Bereich von 0 bis m-1 (einschließlich) als Startwert (oder Saat) kann man den multiplikativen Kongruenzgenerator y_{i+1} \equiv (ay_i)\ \bmod\ m definieren. Die Kombination von a und y führt zumindest dann zu einer maximalen Periodenlänge \lambda(m) unter den multiplikativen Kongruenzgeneratoren mit demselben Modul m, wenn

  1. y_0 zu m teilerfremd ist, d.h. \mathrm{ggT}(y_0, m) = 1, und
  2. a primitives Element modulo m ist.

Für Primzahlpotenzen berechnet sich die maximale Periodenlänge hierbei gemäß

Für eine zusammengesetzte Zahl m=p_1^{e_1}\cdots p_k^{e_k} gilt schließlich \lambda(m)=\mathrm{kgV}(\lambda(p_1^{e_1}),\ldots,\lambda(p_k^{e_k})).

Beispiele[Bearbeiten]

  • Zum Modul m=10 sind demnach 1, 3, 7 und 9 geeignete Startwerte y_0, während 3 und 7 geeignete Faktoren a sind. In der Tat liefert etwa a=3, y_0=9 die Folge 9, 7, 1, 3, 9, 7, 1, 3, \ldots mit der Periodenlänge vier – mehr ist im Fall m=10 nicht möglich.
  • Zu m=64 sind etwa a=5 und y_0=11 geeignete Werte. Die erzeugte Folge 11, 55, 19, 31, 27, 7, 35, 47, 43, 23, 51, 63, 59, 39, 3, 15, 11, \ldots hat Periodenlänge 16 und erweckt bereits einen leichten Eindruck von scheinbar zufälliger Unregelmäßigkeit.

Bemerkungen[Bearbeiten]

  • Die Zahl a heißt hierbei primitives Element modulo m, wenn der kleinste positive Exponent e, für den a^e\equiv 1\pmod m gilt, maximal ist. Falls Primitivwurzeln modulo m existieren, ist dies gleichbedeutend damit, dass a eine solche ist.
  • Die im Satz genannten Kriterien sind hinreichend; das zweite ist auch notwendig, nicht jedoch das erste. Beispielsweise liefert die Wahl m=10, a=3,  y_0=2 die Folge 2, 6, 8, 4, 2, 6, 8, 4, \ldots der Periodenlänge vier, obwohl y_0 nicht teilerfremd zu m ist.
  • Um zu prüfen, ob eine Zahl a primitiv modulo m ist, genügt es, diese Eigenschaft jeweils für sämtliche m teilenden Primzahlpotenzen zu überprüfen.
  • In der computertechnischen Anwendung ist m meist eine nicht zu kleine Zweierpotenz; dann ist a primitiv genau dann, wenn a\equiv 3\pmod 8 oder a\equiv 5\pmod 8 gilt.

Literatur[Bearbeiten]