← Georg Nees, 1969 Kapitel ③ — Spektrum

Dissertation 1969

ALGOL 60

'BEGIN' 'COMMENT' ZUFALLSFOLGE 1.,
'INTEGER' JI, JS.,
'REAL' JA, JE.,
'REAL' 'PROCEDURE' J.,
'BEGIN' 'COMMENT' ZUFALLSGENERATOR J.,
   JI.=5*JI.,
   'IF' JI 'NOTLESS' 8589934592 'THEN' JI.=JI-8589934592.,
   'IF' JI 'NOTLESS' 4294967296 'THEN' JI.=JI-4294967296.,
   'IF' JI 'NOTLESS' 2147483648 'THEN' JI.=JI-2147483648.,
   J.=JI/2147483648*(JE-JA) + JA
'END' ZUFALLSGENERATOR J.,
JS.=1306859721.,
'BEGIN' 'REAL' U.,
   JI.=JS., OPEN(0,0).,
   JA.=0., JE.=90.,
   'FOR' U.=0 'STEP' 2 'UNTIL' 258 'DO'
   'BEGIN' LEER(U+.5,0)., LINE(U+.5,J).,
           LEER(U+1.5,J)., LINE(U+1.5,0)
   'END', CLOSE
'END'
'END' ZUFALLSFOLGE 1.,

LEER(0,-90.0)., X.=0., Y.=0., OPEN(X,Y).,

'BEGIN' 'COMMENT' ZUFALLSFOLGE 2.,
'INTEGER' JI, JS.,
'REAL' JA, JE.,
'REAL' 'PROCEDURE' J.,
'BEGIN' 'COMMENT' ZUFALLSGENERATOR J.,
   JI.=5*JI.,
   'IF' JI 'NOTLESS' 512 'THEN' JI.=JI-512.,
   'IF' JI 'NOTLESS' 256 'THEN' JI.=JI-256.,
   'IF' JI 'NOTLESS' 128 'THEN' JI.=JI-128.,
   J.=JI/128*(JE-JA) + JA
'END' ZUFALLSGENERATOR J.,
JS.=127.,
'BEGIN' 'REAL' U.,
   JI.=JS., OPEN(0,0).,
   JA.=0., JE.=90.,
   'FOR' U.=0 'STEP' 2 'UNTIL' 258 'DO'
   'BEGIN' LEER(U+.5,0)., LINE(U+.5,J).,
           LEER(U+1.5,J)., LINE(U+1.5,0)
   'END', CLOSE
'END'
'END' ZUFALLSFOLGE 2.,

Diese Seite · Zeichenkern

JavaScript

function makeGenerator(seed, [p3, p2, p1]) {
  let JI = seed;
  return function J(JA, JE) {
    JI = 5 * JI;
    if (JI >= p3) JI -= p3;
    if (JI >= p2) JI -= p2;
    if (JI >= p1) JI -= p1;
    return (JI / p1) * (JE - JA) + JA;
  };
}

const J1 = makeGenerator(1306859721, [2**33, 2**32, 2**31]);
const J2 = makeGenerator(127, [512, 256, 128]);

function spectrum(J, y0) {
  for (let U = 0; U <= 258; U += 2) {
    LEER(U + 0.5, y0);     LINE(U + 0.5, y0 + J(0, 90));
    LEER(U + 1.5, y0 + J(0, 90)); LINE(U + 1.5, y0);
  }
}

spectrum(J1, 0);
spectrum(J2, -90);

Bild 5 zeigt denselben Balkenlauf zweimal. Jeder Schleifendurchlauf setzt zwei vertikale Strecken: vom Fußpunkt auf der Achse zur zufälligen Höhe J, dann vom nächsten Scheitel zurück zum Fuß — 130 Durchläufe, 260 Balken je Spektrum. Oben arbeitet der Generator mit den Zweierpotenzen 233 bis 231 und dem Buch-Seed JS1 = 1306859721: die Periode ist so lang, dass keine Wiederholung sichtbar wird. Unten dieselben Zeilen mit 512, 256, 128 und Startwert 127 — die Folge hat nur 32 Werte, das untere Spektrum wird periodisch. Nach dem oberen Bild setzt Nees den Ursprung nach (0, −90), sodass beide Spektren an einer gemeinsamen Achse zusammenstoßen (im Buch auf der Hochkante des DIN-A4-Blatts).

© Werke Georg Nees: Erben Eckhard Nees & Sandra Nees · Website © 2026 Eckhard Nees