000
25.02.2004, 11:16 Uhr
NemoEimi
|
Huhu,
da in letzter Zeit nicht viel passiert hier in der Rätselecke, stelle ich mal wieder eins ein :
Wir definieren eine Folge a_n natürlicher Zahlen iterativ durch folgende Vorschrift:
a_0 := a, a_{n+1} := a_n / 2, falls a_n gerade ist, a_{n+1} := 3*a_n - 1, falls a_n ungerade,
wobei a eine natürliche Zahl ist. Diese Folge nennen wir 3n-1 - Folge zum Startwert a. Die 3n-1 - Folge zum Startwert 5 beispielsweise fängt also so an:
5, 14, 7, 20, 10, 5, 14, ......
Offenbar ist 20 der größte Wert, der von der 3n-1 - Folge zum Startwert 5 angenommen wird. Falls die 3n-1 - Folge zum Startwert a einen größten Wert hat, nennen wir den Mx(a) oder auch den Rekord von a; es gilt also hier Mx(5) = 20. Nimmt die 3n-1 - Folge zum Startwert a keinen größten Wert an, dann setzen wir Mx(a) = 0. Besitzt eine natürliche Zahl n die Eigenschaft, daß Mx(n) > Mx(m) ist für alle natürlichen Zahlen m mit m < n, dann heisst n ein Rekordhalter . Zu schreiben ist nun ein Programm, das alle Rekordhalter zwischen 1 und einer vom Benutzer vorzugebenden Zahl < 2^32 ermittelt und zusammen mit den dazugehörigen Rekorden ausgibt. Es gewinnt das schnellste Programm. Ein Lob für besondere Leistungen beim Golfen gibt es zusätzlich für die kürzeste korrekte Lösung .
Grüße, Nemo Dieser Post wurde am 25.02.2004 um 11:18 Uhr von NemoEimi editiert. |