Rho-Algorithmus

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Rho-Algorithmus

Beitrag von remi_meier »

Noch ein ganz kleiner Beitrag.
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
Das ist das 3n + 1 Problem, zum Testen, ob jede Zahl in einen Zyklus
gerät (hier sogar immer in 4, 2, 1).

greetz
Remi
Norbie
Beiträge: 134
Registriert: 29.08.2004 12:45
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von Norbie »

Hm erkennt das Zyklen beliebiger länge? :?
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Jap, es geht manchmal einfach etwas länger. Ein Zähler (z2) läuft mit
doppelter Geschwindigkeit wie der normale Zähler (z1). Wenn beide in
den Zyklus geraten, kommt irgendwann z2 zum überrunden von z1,
überspringen kann er ihn jedoch nicht, deshalb sind die beiden Zähler
bei einem Zyklus irgendwann mal gleich.
Norbie
Beiträge: 134
Registriert: 29.08.2004 12:45
Wohnort: Chemnitz
Kontaktdaten:

Beitrag von Norbie »

Genial einfach :allright: :shock:
Ist aber wohl nicht auf deinem Misst gewachsen :mrgreen:
http://www.nevu.de/ Künstliche Intelligenz, die letzte Herausforderung!
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Ne, ich würde mich nie trauen einem Algorithmus selbst einen Namen zu
geben!
Ich habe gerade (im 2er-Team) vor ner Woche etwa einen Kreativpreis
bekommen, weil wir diesen Algorithmus verwendeten. Obwohl so simpel
ist er doch recht unbekannt.
Benutzeravatar
Jac de Lad
Beiträge: 56
Registriert: 24.07.2019 17:53
Computerausstattung: AMD Ryzen 1700X, MSI B350 PC Mate, 256GB SSD, 16GB RAM@2933MHz, AMD Radeon 7770 OC, 106TB HDD, 28" Samsung 4k-Monitor, Windows 10 x64
Wohnort: Riesa
Kontaktdaten:

Re: Rho-Algorithmus

Beitrag von Jac de Lad »

Antworten