![]() |
Das 3n+1 / 5n+1 Problem
Auf das neue 3n+1 / 5n+1 Problem bin ich bei meinen
Bemühungen um das 3n+1-Problem gestossen. Dies Problem ist eine 2-stufige Variante des bekannten 3n+1 Problems. Es geht los mit einer ungeraden Zahl n. Dazu bildet man 3*n+1. Dann teilt man so oft durch 2, bis wieder eine ungerade Zahl m entsteht. Dazu bildet man dann 5*m+1. Dann teilt man so oft durch 2, bis wieder eine ungerade Zahl entsteht. Die ist das neu n. Mit dem geht es wieder von vorne los. Beispiel: 1 -> 4-2-1 -> 6-3 3 -> 10-5 -> 26-13 13 -> 40-20-10-5 -> 26-13 13 ist also eine Zahl, die auf sich selbst abgebildet wird. Auf sich selbst abgebildet werden auch 7 und 9. 7 -> 22-11 -> 56-28-14-7 und 9 -> 28-7 -> 36-18-9 Es kann natürlich auch längere Zyklen geben, wo es erst nach mehreren Runden zur Ausgangszahl zurück läuft. Aufgabe: Man finde (mit Computerhilfe) viele veschiedene Zyklen, möglichst sogar "alle". *********************************************** Vermutung: Für jede ungerade Startzahl n gibt es einen Zyklus, in den diese Startzahl läuft. Das Problem ist wohl härter als das klassische 3n+1-Problem, weil hier nicht immer mit 3 multipliziert wird, sondern abwechselnd mit 3 mit 5. 3*5=15 < 16. Weil in jedem Halbierungs-Abschnitt im Durchschnitt zwei Mal durch 2 geteilt wird, sollten große Startzahlen auf lange Sicht kleiner gemacht werden (weil 3/4 * 5/4 < 1). Ich bin gespannt, wer was mit Computerhilfe oder anders herausfindet. Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Naja... wenn das Problem "härter" ist als das normale 3n+1 Problem (auch als Collatz-Problem bekannt) dann wird das wohl kaum einer lösen können. Selbst das Collatz-Problem selbst hat sich einer endgültigen Lösung bisher entzogen und gilt als eines der ungelösten Probleme der Mathematik.
Meines Wissens gibt es bisher nur eine Teillösung von Terence Tao. https://arxiv.org/abs/1909.03562 Damit hat er sich dem Ursprungsproblem zwar angenähert, aber auch keine endgültige Lösung geliefert. Insofern dürfte auch die Erweiterung des Problems derzeit eher in die Kategorie "unlösbar" fallen. |
AW: Das 3n+1 / 5n+1 Problem
Hallo Hartmut,
Zitieren:
Vielmehr spekuliere ich, dass es trotz 15/16 < 1 vielleicht Startwerte gibt, die ins Unendliche laufen oder zumindest sehr gross werden. Das würde dann den bei vielen vorhandenen Glauben erschüttern, dass alles nur von den Erwartungswerten (also 3/4 < 1 ...) abhängt. Zitieren:
folgende von mir, bei der Zufall im Spiel ist: Zu der aktuellen Zahl n bildet man entweder 3n+1 oder 3n-1 oder 3n+3 oder 3n-3, und zwar jeden der Werte mit der gleichen Wahrscheinlichkeit 1/4, unabhängig von früheren Interationen. Dann halbiert man, bis man wieder ungerade ist. Das Ganze endet, wenn man bei 0 oder 1 landet. Ich habe einen Beweis, dass man für jeden ungeraden Startwert n(0) mit Wahrscheinlichkeit 1 bei 0 oder 1 landet. ******************************************* Hier ist eine einfachere Variante, ein dreistufiges Prinzip: Aus n wird 3n+1, dann halbieren dann wieder 3n+1, wieder halbieren dann n+1, wieder halbieren Man beweise, dass damit dadurch von allen Startwerten aus zu ganz kleinen Werten gelangt. Das ist plausibel, aber nicht trivial, weil 3*3*1 = 9 > 8 =2*2*2 Im schlimmsten Fall steigt man also mit ganz vielen 9/8-Schritten nach unendlich auf. In der Notation aus dem Threadtitel ist das das 3n+1 / 3n+1 / n+1 Problem. Viele Grüße, ingo. |
AW: Das 3n+1 / 5n+1 Problem
Hi Ingo
Auf jeden Fall ein interessantes Problem. Ich bin zum ersten Mal in meiner Studienzeit da drauf gestoßen. Das gemeine an der Sache ist, dass es auf den ersten Blick nach einer Aufgabe aussieht, die eigentlich nach einer Lösung mittels vollständiger Induktion schreit... naja... leider nur auf den ersten Blick, aber als Erstsemester hab ich tatsächlich geglaubt, es ginge so oder ähnlich. Mal sehen. Wenn ich Zeit habe, probiere ich mit dem Rechner mal aus was da so geht... |
AW: Das 3n+1 / 5n+1 Problem
Hallo Ingo,
Ich fand es ganz interessant, das mal auf die Schnelle zu programmieren. Die Ergebnisse in der Liste fand ich teilweise etwas unintuitiv, vielleicht kannst du etwas dazu sagen. - Kein Startwert divergiert (In den ersten Millionen) - Jeder Startwert endet in einem Zyklus der entweder 5 oder 7 enthält. - Nur sehr wenige Startwerte werden auf sich selbst abgebildet, aber auch diese Zyklen enthalten immer 5 oder 7. - Ein wiederholter Startwert bedeutet keinen Zyklus, da für jede Zahl 2 Nachfolge Zahlen möglich sind. (?) - Ab dem Startwert 22893989 sind auch nach längerer Berechnung keine Neuen mehr erschienen, die auf sich selbst abgebildet werden. Hier eine Tabelle: 1. Startwert 2. Anzahl Durchgänge bis zur Wiederholung 3. Anzahl Durchgänge bis zum ersten Mal 5 oder 7 erscheint. 4. Die höchste vorkommende Zahl. Code:
5 10 10 40Thomas |
AW: Das 3n+1 / 5n+1 Problem
Hallo Thomas,
danke für Dein Rechnen. Irgendwie scheinen wir verschiedene Notationen zu haben. Bei mir ist "*3+1, halbhalb..., *5+1, halbhalb..." eine Runde. Da gibt es drei kurze Zyklen mit nur einer Runde: 7 -> 22-11 -> 56-7 9 -> 28-7 -> 36-9 13 -> 40-5 -> 26-13 Du scheinst einen weiteren Zyklus gefunden zu haben, der in Deiner Notation Länge 358 hat. Wie sieht der denn aus? Und in was läuft die "komische" 95 hinein? ************************************** Eine Frage: Welche Arithmetik nutzt Du? Wie gehst Du mit drohenden Overflows um? Jürgen Dankert hat nicht für ganze Zahlen eine Speicherzelle spendiert, sondern für jede Dezimalstelle einer Zahl. Addieren und Multiplizieren tut er wie in Schulklasse 3 und 4. Viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Zitieren:
das fragezeichen kannst du weglassen, eine wiederholte zahl kann ja einmal bei 3n+1 und dann auch bei 5n+1 auftauchen, die fortsetzung ist also nicht identisch. Danke für deine schnelle programmierung des problems. Kannst du eventuell eine datei anbieten, die einige durchgerechnete zahlenreihen wiedergibt? Viele grüße Horst |
AW: Das 3n+1 / 5n+1 Problem
1 Anhang/Anhänge
Hallo zusammen,
anbei eine Tabelle mit erweiterter Ausgabe: 1. Startwert 2. Anzahl aller Veränderungen des Wertes bis zur Wiederholung 3. Anzahl aller Veränderungen des Wertes bis zum ersten Mal 5 oder 7 erscheint. 4. Anzahl der Runden: "*3+1, halbhalb..., *5+1, halbhalb..." 5. Die höchste vorkommende Zahl. Code:
5 10 10 1 16Ich nutze Integer Arithmetik, uint64_t entspricht unsigned integer 64 bit. Overflows checke ich, indem ich überprüfe ob ich in der Nähe des maximalen 64 bit unsigned Integers bin: 18446744073709551615 Zur Zeit ist die Berechnung davon noch weit entfernt. Die 95 wiederholt sich nach 320 Runden oder 1882 Veränderungen. Das Ende (1. Counter, 2. Wert) sieht so aus (ab 0): 1881 95 1882 476 1883 238 1884 119 1885 358 1886 179 1887 896 1888 448 1889 224 1890 112 1891 56 1892 28 1893 14 1894 7 Angehängt habe ich die Datei 95.txt Viele Grüße, Thomas |
AW: Das 3n+1 / 5n+1 Problem
Zitieren:
|
AW: Das 3n+1 / 5n+1 Problem
Hallo Thomas,
danke für die erweiterten Daten. Zitieren:
wird *5 +1 genommen). > ...1893 14 > 1894 7 Es landet also in der "Fixrunde 7". Viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Hallo Thomas,
jetzt habe ich Deine Darstellungen besser einordnen können. Du schriebst ja "bis zum ersten mal 5 oder 7 auftaucht". Die 5 kommt in der Mitte der einen Runde zur 13 vor: 13 -> 40-20-10-5 -> 26-13 Und die 7 kommt in ihrer eigenen 1-Runden-"Lösung" vor und in der Mitte der 1-Runden-Lösung zur 9: 9 -> 28-14-7 -> 36-18-9 Somit interpretiere ich, was Du gerechnet hast, so, dass es zumindest bis 100 Millionen nur die drei Basiszykel zu 7, 9, 13 gibt. Viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Zitieren:
Ja genau, so war es gedacht. Viele Grüße, Thomas |
AW: Das 3n+1 / 5n+1 Problem
Hallo Thomas,
ein paar Stunden habe ich gebraucht, um Deine Daten zu verdauen - und bin mehr und mehr begeistert. Startwert 95 im 3n+1/5n+1 ist ideal, wenn man als Lehrer einer Vertretungsstunde einen Klugscheißer in der Klasse hat. Man erklärt der Klasse das 3n+1-Problem und läßt "die Bestien" dann auf Startwert 27 los. Da braucht es gut 100 "Einzel"schritte, um zur 1 zu gelangen. Nun stelle man sich einen Schüler vor, der nach 7 oder 8 Minuten kräht, er habe es raus. Die anderen sind derweil noch heftig am "arbeiten". Dem Überflieger gibt man dann eine "kleine" Erweiterungsaufgabe: Das 3n+1/5n+1-Problem mit Startwert 95 und verrät ihm auch noch, dass am Ende 7 rauskommt. Er solle das auch noch mal schnell verifizieren. Hintergrund: Es gibt eine Leistungsszene im Kopfrechnen, in der auch SchülerInnen und StudentInnen aus Jena vorne dabei sind. Einer von denen wurde Weltmeister und sass auch bei mir in der Vorlesung... ***************************************** Ähnlich zu dem 3n+1/5n+1 ist das 15n+1/n+1-Problem: Ungerades n wird mit 15 multipliziert, dann plus 1. Runterhalbieren, bis ungerade. Dann plus 1. Wieder runterhalbieren. (Es ergibt sich der gleiche Quotient 15/16 wie beim 3/5-Problem.) Gibt es da auch solch einen "Klugscheißer-Schreck" wie die 95 bei 3/5 ? Die ersten drei Werte geben übrigens 1-Zyklen: 1 -> 16-8-4-2-1 -> 2-1 3 -> 46-23 -> 24-12-6-3 5 -> 76-38-19 -> 20-10-5 Ob es weitere Zyklen gibt, weiß ich nicht. Dank und viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Hallo zusammen,
ich muss eine kleinere (größere?) Korrektur an meiner Auswertung anbringen. Zum Spaß hatte ich die Berechnungen mal mit einer C++ Library für 128 Bit Integers wiederholt, und Abweichungen festgestellt. Es stellte sich heraus, das mein Check für einen 64-Bit Überlauf an einer Stelle um eine Zeile verrutscht war und deswegen nicht richtig griff. Bereits ab dem Startwert 1489 kommt man in einen Bereich > 64 Bit, d.h. > 18446744073709551615. Und schon ab 3859 wird auch der 128 Bit Bereich verlassen, d.h. > 340282366920938463463374607431768211455. Für den Bereich 1489 - 3859 kommt aber offenbar auch alles zurück zu der "Fixrunde 7". Ich vermute das sich das auch so fortsetzt, aber man bräuchte eine C++ Library für Integers beliebiger Größe um das zu überprüfen. Solche Libraries gibt es, wenn ich dazu komme probiere ich das mal aus. Viele Grüße, Thomas |
AW: Das 3n+1 / 5n+1 Problem
Hallo Thomas,
Zitieren:
Overflows umgegangen? Dank und viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Liebe Leute, online bin ich in einem Schreib-Forum aktiv, wo jeden
Monat ein anderes Thema gegeben ist, zu dem Kurzgeschichten mit höchstens 10.000 Zeichen gesucht werden. Für den August 2023 lautet das Thema "Dumm gelaufen." Dazu ist mir aus dem Stehgreif folgende Geschiche eingefallen. 3n+1 für Klugscheißer Ingo Althöfer Eingereicht am 2. August 2023 beim Schreiblust-Wettbewerb. Igor war ein Oberschlauer, zumindest in Mathe. Rechnen konnte er wie ein Teufel, sei es im Kopf oder auf dem Papier. Auf die Klassenkameraden in der 5c blickte er mit Arroganz hinab. Eines Tages gab es eine Vertretungsstunde durch den Mathelehrer, Herrn Osterhage. Der wollte sich in der Stunde nicht verausgaben und stellte zu Beginn eine ganz einfache Rechenregel vor: Wenn die aktuelle Zahl n ungerade ist, bildet man 3n+1. Das Ergebnis ist eine gerade Zahl. Die teilt man so lange durch 2, bis es nicht mehr geht. Dann bildet man wieder „mal 3 plus 1“, teilt dann wieder durch 2, bis es ungerade wird, usw. Hier habt ihr ein Beispiel: 1 -> 4 -> 2 -> 1. Aha, von der 1 kommt man also ganz schnell wieder zur 1. Probieren wir die 3. 3 -> 10 -> 5 -> 16 -> 8 -> 4 -> 2 -> 1. Also führt auch die 3 nach kurzer Zeit zur 1. Und wisst ihr was? Schlaue Leute vermuten, dass, egal mit welcher ungeraden Zahl es losgeht, man immer zur 1 gelangt. Und jetzt seid ihr dran: Fangt, jeder für sich, bei der 27 an und rechnet auf dem Papier, bis ihr bei der 1 seid. Wer das als erster richtig fertig hat, bekommt ein Duplo! Das ließ Igor sich nicht zwei Mal sagen. Nach 6 Minuten und 28 Sekunden [sic!] hatte er die vollständige Lösung mit ihren 93 Schritten, während alle anderen noch mit den Griffeln in der Hand schwitzten. Igor rannte vor, um sich das Duplo abzuholen. Aber Herr Osterhage hatte eine Überraschung für ihn in Petto. Leise, um die anderen nicht zu stören, sagte er: „Gut gemacht, Igor. Aber ich biete Dir ein Upgrade an: Statt des einen Duplo bekommst Du drei, wenn Du die folgende etwas schwerere Aufgabe löst.“ Beim 3n+1/5n+1-Problem passiert folgendes: Es geht mit einer ungeraden Zahl n los. Dazu bildet man 3n+1 und halbiert dann so oft, bis man wieder bei einer ungeraden Zahl m ist. Dazu bildet man 5m+1 und halbiert wieder runter bis zu einer ungeraden Zahl. Hier ist ein einfaches Beispiel: 7 -> 22 -> 11 -> 56 -> 28 - > 14 -> 7. Die 7 landet also nach einer Runde wieder bei sich selbst. Wenn Du es schaffst, bis zum Ende der Stunde auszurechnen, wie man ausgehend von der 95 zur 7 gelangt, bekommst Du drei Duplos. Willst Du Dich darauf einlassen? Igor, etwas zu laut: „Natürlich, da werde ich mich mal etwas anstrengen. Super, drei Duplos für lau.“ Er begann und rechnete und rechnete und rechnete ... und hörte auch das Pausenklingeln nicht. Herr Osterhage kam zu ihm und fragte: „Na Igor, wie weit bist Du?“ „Noch nicht ganz fertig. Können Sie mich bitte in der Klasse einschließen? Die drei Duplos bekomme ich doch auch, wenn ich es bis zum Ende der großen Pause geschafft habe?! Bitte!“ Ossi tat ihm den Gefallen. Igor schaffte es aber nicht - und musste sich zu Beginn der nächsten Stunde den Spott der Klassenkameraden gefallen lassen. ********************************************* Erläuterungen: * Das 3n+1-Problem und die zugehörige Vermutung stammten von Lothar Collatz aus dem Jahr 1937. * Das 3n+1/5n+1-Problem hat der Klugscheißer Ingo A 2023 formuliert. Er hat auch die Vermutung aufgestellt, dass, egal bei welcher ungeraden Zahl man beginnt, am Ende entweder 7 oder 9 oder 13 herauskommt. * Die Identifizierung der 95 als besonders schwerer Startwert für das 3n+1/5n+1-Problem gelang Thomas Zipproth. * Die Lösung für 95 wird Ende des Monats August verraten. * Ossi war der Lieblingslehrer von Ingo A. In acht der neun Jahre auf dem Gymnasium unterrichtete er ihn in Mathe. Dieser Fixpunkt half dem hyperaktiven Kind als stabilisierende Größe im Schulalltag. *************************** *************************** Herzliche Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
1 Anhang/Anhänge
Hallo Ingo,
Open Source ist sowieso besser, deshalb im Anhang jetzt der komplette Source Code in C (auch zur Kontrolle) und das Ergebnis. Der Code sollte mit den Kommentaren leicht verständlich sein und ist ja auch nur 60 Zeilen lang. Man sollte halt nicht spät nachts oder in Zeitnot etwas programmieren, nur weil es einen interessiert. Sollte ich nach 35 Jahren Software Entwicklung eigentlich wissen. Ein Auszug aus dem Ergebnis: 1: Startwert 2: Anzahl Runden 3: Anzahl Veränderungen des Wertes 4: Größter vorkommender Wert Code:
5 1 5 16Code:
698 Overflow |
AW: Das 3n+1 / 5n+1 Problem
Das Programm in FreeBasic würde etwa so aussehen:
Dim As UInt64 max64_3 = 18446744073709551615 / 3 - 1 Dim As UInt64 max64_5 = 18446744073709551615 / 5 - 1 Dim As UInt64 biggest_number Dim As Integer runde Function sequence(n As UInt64) As Integer Dim As Integer count = 0 runde = 1 biggest_number = 0 Do If n > max64_3 Then Return -1 ' Check auf Overflow (nach der Multiplikation) n = 3 * n + 1 count += 1 If n > biggest_number Then biggest_number = n While (n Mod 2) = 0 n /= 2 count += 1 Wend If n < 8 Then Return count If n > max64_5 Then Return -1 ' Check auf Overflow (nach der Multiplikation) n = 5 * n + 1 count += 1 If n > biggest_number Then biggest_number = n While (n Mod 2) = 0 n /= 2 count += 1 Wend runde += 1 If n < 8 Then Return count If count > 1000000 Then ' Infinite Loop Return -2 End If Loop End Function Sub Main() Dim As UInt64 n Dim As Integer count For n = 5 To 372 count = sequence(n) If count = -1 Then Print n; " Overflow" ElseIf count = -2 Then Print n; " Infinite Loop" Else Print n; " "; runde; " "; count; " "; biggest_number End If Next End Sub Schaut für mich übersichtlicher aus als das C-Programm. Aber C war noch nie wirklich für übersichtlichen Quellcode bekannt, lach. Für diejenigen, die sich in FreeBasic nicht so gut auskennen: count += 1 ist eine Kurzform für count = count + 1. Entsprechend bedeutet n /= 2 einfach n = n / 2 Ein entsprechendes Turbo-Pascal-Programm sieht ziemlich ähnlich aus, ich habe es aber nicht getestet. program CollatzSequence; uses sysutils; const max64_3: UInt64 = 18446744073709551615 div 3 - 1; max64_5: UInt64 = 18446744073709551615 div 5 - 1; var biggest_number: UInt64; runde: Integer; function Sequence(n: UInt64): Integer; var count: Integer; begin count := 0; runde := 1; biggest_number := 0; repeat if n > max64_3 then Exit(-1); // Check auf Overflow (nach der Multiplikation) n := 3 * n + 1; Inc(count); if n > biggest_number then biggest_number := n; while (n mod 2) = 0 do begin n := n div 2; Inc(count); end; if n < 8 then Exit(count); if n > max64_5 then Exit(-1); // Check auf Overflow (nach der Multiplikation) n := 5 * n + 1; Inc(count); if n > biggest_number then biggest_number := n; while (n mod 2) = 0 do begin n := n div 2; Inc(count); end; Inc(runde); if n < 8 then Exit(count); if count > 1000000 then Exit(-2); // Infinite Loop until False; end; var n: UInt64; count: Integer; begin for n := 5 to 372 do begin count := Sequence(n); if count = -1 then WriteLn(n, ' Overflow') else if count = -2 then WriteLn(n, ' Infinite Loop') else WriteLn(n, ' ', runde, ' ', count, ' ', biggest_number); end; end. |
AW: Das 3n+1 / 5n+1 Problem
Stimmt, bei den Programmiersprachen gibt es ganz unterschiedliche Präferenzen.
Der komplette C Code, erzeugt denselben Output, mal etwas schwerer lesbarer ;) #include"stdio.h" #include"stdint.h" #define z c++;if(n>b)b=n;while((n%2)==0){n/=2;c++;} uint64_t u=18446744073709551615/3-1,v=18446744073709551615/5-1,b;int r;int s(uint64_t n){int c=0;r=1;b=0; for(;; ){if(n>u)return-1;n=3*n+1;z if(n<8)return c;if(n>v)return-1; n=5*n+1;z r++;if(n<8)return c;if(c>1000000)return-2;}} int main(){for(uint64_t n=5;n<373;n++){int c=s(n);if(c==-1)printf("%4I64u Overflow\n",n); if(c==-2)printf("%4I64u Infinite Loop\n",n);if(c>=0)printf("%4I64u %4d %5d %16I64u\n",n,r,c,b);}} |
AW: Das 3n+1 / 5n+1 Problem
Liebe Leute,
Ihr kommt etwas vom Thema ab. Trotzdem möchte ich auch eine Erinnerung beisteuern. Um 1990 herum war ich in Kontakt mit Wolfgang Delmare, der damals auch Schachprogrammierer war. Im Gespräch erzählte er über ein abgebrochenes Gespräch mit einem anderen Programmierer (Helmut Horacek?). Auch wenn es vielleicht nicht Helmut war, kürze ich ihn mal mit HH ab und Wolfgang mit WD. HH: Wie lang ist denn Dein Schachprogramm? WD: Meinst Du in Zeilen oder in Kommandos? HH: Genau. WD: Das ist aber nicht das Gleiche. Meinst Du Zeilen oder meinst Du Kommandos? HH: Aber man schreibt doch in jede Zeile nur ein Kommando. WD: Ich nicht. Meist kriege ich zwei bis drei Kommandos in eine Zeile. Wolfgang zu mir: An der Stelle brach HH das Gespräch ohne weitere Erklärung ab. ******************************** Aus Interesse frage ich mal: Was liefert das BASIC-Programm denn für Ergebnisse für das 15n+1/n+1 -Problem? Gibt es da auch so abgefahrene kleine Startwerte wie die 95 bei 3n+1/5n+1 ? Neugierige Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Zitieren:
Mein Post sollte nur helfen, den Code besser zu verstehen, da FreeBasic und Pascal als imperative Sprachen teilweise besser zu verstehen sind, wenn man in der C-Programmierung nicht so drin ist. Geht mir jedenfalls so. |
AW: Das 3n+1 / 5n+1 Problem
Hallo Hartmut,
wir schreiben aneinander vorbei. Es ist mir egal, ob 15n+1/n+1 mit dieser oder jener Programmiersprache attackiert wird. Ich traue Euch beiden zu, richtig zu programmieren. Der Punkt ist: Ich habe zuletzt 1992 programmiert (Zillions ausgenommen, aber das ist ja etwas anderes) und kann nicht mehr programmieren. Wobei ich beim Betrachten von Programmcode schon noch die eine oder andere Ungereimtheit erkenne. Zur Erinnnerung: 15n+1/n+1 hat die drei Fixpunkte 1 3 5 (und vielleicht weitere). Viele Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
1 Anhang/Anhänge
Hallo Ingo,
diese Folge scheint wesentlich interessanter zu sein als die andere. Es gibt bis jetzt die Fixpunkte: 1, 3, 5, 9, 31, 507 Der erste Overflow erfolgt bei 1799 Anbei wieder Code + Liste. Ein Auszug aus der Liste: 1. Startwert 2. Anzahl Runden bis zum zweiten Erreichen des niedrigsten Wertes 3. Anzahl Veränderungen des Wertes bis zum zweiten Erreichen des niedrigsten Wertes 4. Niedrigster Wert der zweimal erreicht wird (Fixpunkt) 5. Höchster erreichter Wert Code:
1 1 6 1 16 |
AW: Das 3n+1 / 5n+1 Problem
Liebe Leute,
nach wie vor sitze ich an Varianten des 3n+1-Problems. Gestern abend ist das 5n+-1 Problem dazu gekommen. Es geht los mit einer ungeraden Zahl n. Zu der bildet man 5n-1 und 5n+1. Dies sind beides gerade Zahlen. Eine von ihnen ist durch 4 teilbar, die andere nur durch 2. Man nimmt die Zahl, die durch 4 teilbar ist, und halbiert so lange, bis sich eine ungerade Zahl ergibt. Von der aus startet die nächste Runde. Beispiele: 1 -> (4 , 6) -> 4 -2 -1 Also ist 1 ein Fixpunkt. 7 -> (34 , 36) -> 36 - 18 - 9 9 -> (44 , 46) -> 44 - 22 - 11 11 -> (54 , 56) -> 56 - 28 - 14 - 7 Also ist 7-9-11-7 ein Zyklus. Bis zum Startwert 109 habe ich keine weiteren Zykel gefunden. Vermutung: Jeder Startwert läuft in einen Zyklus. Frage: Sind 1 und 7-9-11 die einzigen Zyklen? Dank im Voraus an alle, die ihre Engine-Bestien auf das Problem loslassen! Herzliche Grüße, Ingo. |
AW: Das 3n+1 / 5n+1 Problem
Hallo zusammen,
ich habe es mal schnell durchlaufen lassen (5n-1 und 5n+1), die Änderungen am vorigen Programmcode sind ja überschaubar. Ergebnis: 1. Bis zum Startwert 1.000.000 treten nur die Fixpunkte 1 und 7 auf. 2. Die Folge konvergiert immer sehr schnell, der höchste vorkommende Wert ist nur maximal 10-15 mal größer als der Startwert. 3. Aufgrund von (2.) gibt es auch keine besonderen Ausreißer oder Überraschungen, alles läuft sehr schnell in 1 oder 7 rein. Viele Grüße, Thomas |
| Alle Zeitangaben in WEZ +1. Es ist jetzt 14:16 Uhr. |
Powered by vBulletin (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
©Schachcomputer.info