Dieser Algorithmus ist extrem einfach und effizient zum erkennen von
Zyklen in Zahlenfolgen.
Code: Alles auswählen
; Rho-Algorithmus
Procedure.l F(x.l)
If x & 1
ProcedureReturn 3 * x + 1
Else
ProcedureReturn x / 2
EndIf
EndProcedure
For z = 1 To 10
z1 = z
z2 = z
Debug "###"
Repeat
z1 = F(z1)
z2 = F(F(z2))
Debug z1
Until z1 = z2 Or z2 = 1
Next
gerät (hier sogar immer in 4, 2, 1).
greetz
Remi