Hallo St.Pauli,
im Pseudo Code steht
Delphi-Quellcode:
a:=Random(1, n-1)
if Witness(a,n) then
Die dort benutze Random Version, so denke ich, gibt eine Zufallszahl im Bereich 1 .. n-1 aus.
Der Parameter a ist also minimal 1,
maximal n-1
In Deiner Version wolltest du das a:= .... sparen und ersetzt den Parameter a durch
Random(n-2) + 1
Random(n-2) ergibt eine Zufallszahl im Bereich 0 .. n-3.
Hierzu addierst du 1, erhältst also einen Wert im Bereich 1..n-2
Dein Parameter a ist minimal 1,
maximal n-2
Vielleicht liegts daran?!