Matroids Matheplanet Forum Index
Moderiert von matroid
Informatik » Algorithmen / Datenstrukturen » Alternativer Collatzalgorithmus
Thema eröffnet 2019-11-07 19:44 von blindmessenger
Druckversion
Druckversion
Antworten
Antworten
Seite 2   [1 2]   2 Seiten
Autor
Kein bestimmter Bereich Alternativer Collatzalgorithmus
querin
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 12.01.2018
Mitteilungen: 327
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.40, eingetragen 2019-11-14


Hallo blindmessenger,

meine Funktion liefert korrekte Ergebnisse für alle ungeraden Zahlen. Du kannst selbst testen, indem du folgenden Code kopierst und hier im main.py Fenster einfügst und dann auf "run" klickst.
python
def collatz(u):
    r,p=1,2
    while 1:
        r=(-r)%6
        a=(p*r-1)//3
        p*=2  
        if (u-a)%p==0:
            return 6*((u-a)//p)+r
 
def f(u):
    c=str(u)
    while u>1:
        u=collatz(u)
        c+=', '+str(u)
    print(c)
    with open('collatz_{}.txt'.format(u), 'w') as fp:
        fp.write(c)
 
#collatz(155)
f(155)

Natürlich ist 155 nur ein Beispiel und kann durch jede andere ungerade Zahl ersetzt werden. Der Funktionsaufruf von collatz(155) ist auskommentiert; bei Bedarf einfach das #-Zeichen entfernen (und vor f(155) setzen).




Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.41, eingetragen 2019-11-14


Ach, das ist aber nett.

So, diesen Befehl habe ich gesucht print(c.replace("\n",", ")), das heißt, die newline wird durch ein Komma plus Leerstelle ersetzt.

Da zeilengetrennte Ausgabe m.W. der Default ist, müsste in folgendem Code noch eine Vereinfachung möglich sein.

Jedenfalls wird es jetzt so ausgegeben, wie ich mir das vortselle:
Display: kommagetrennt (zwecks Übersicht).
Ausgabe-Datei: zeilengetrennt.


Die Ausgabe-txt ist nicht zum Lesen.... So: "Ach, wie zauberhaft!"
Das ist zum Weiterverarbeiten! Und in der txt-Ausgabedatei macht eine kommagetrennte Liste überhaupt keinen Sinn! Wie soll ich denn da mit einem anderem Programm etwas einfach rauslesen?!

Das habe ich jetzt aber 5-mal vorgetragen, das ist jetzt höffentlich auch mal bei den Zaubärhaftis angekommen.

Noch ein letzter Punkt: Ich finde es grundsätzlich schön, wenn man die Eingangsparameter ganz am Anfang hinschreibt, und nach denen nicht in irgendwelchen längeren Codes ewig suchen muss.
Das sind halt alles solche Minimalansprüche, die man an sich selbst haben kann oder nicht...  

So, jedenfalls danke. Wie gesagt, eine Vereinfachung in der Syntax müsste noch möglich sein.
Sage
U = 155  # Den Algorithmus durchlaufende Zahl
def collatz(u):
    r,p=1,2
    while 1:
        r=(-r)%6
        a=(p*r-1)//3
        p*=2  
        if (u-a)%p==0:
            return 6*((u-a)//p)+r
def f(u):
    c=str(u)
    while u>1:
        u=collatz(u)
        c+='\n'+str(u)
#    print(c)                       # alt
    print(c.replace("\n",", "))     # neu
    with open('collatz_{}.txt'.format(U), 'w') as fp:
        fp.write(c)
#collatz(U)
f(U)
155, 233, 175, 263, 395, 593, 445, 167, 251, 
377, 283, 425, 319, 479, 719, 1079, 1619, 
2429, 911, 1367, 2051, 3077, 577, 433, 
325, 61, 23, 35, 53, 5, 1
Out[Display]
155
233
175
263
395
593
...
 Out[collatz155.txt]










Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
blindmessenger
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2016
Mitteilungen: 1102
Aus: Sachsen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.42, vom Themenstarter, eingetragen 2019-11-14


@Geroyx und @querin

Danke euch für die Mühe...

Und cool querin dass Dein Code wirklich jede Zahl erwischt...

Kannst Du kurz nochmal die Bildungsvorschrift für die "mystischen Zahlen" mathematisch darstellen?


-----------------
Gruß blindmessenger



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
querin
Wenig Aktiv Letzter Besuch: vor mehr als 3 Monaten
Dabei seit: 12.01.2018
Mitteilungen: 327
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.43, eingetragen 2019-11-14


2019-11-14 18:24 - blindmessenger in Beitrag No. 42 schreibt:
Kannst Du kurz nochmal die Bildungsvorschrift für die "mystischen Zahlen" mathematisch darstellen?

siehe hier



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
blindmessenger
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2016
Mitteilungen: 1102
Aus: Sachsen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.44, vom Themenstarter, eingetragen 2019-11-14


)
2019-11-14 18:32 - querin in Beitrag No. 43 schreibt:
2019-11-14 18:24 - blindmessenger in Beitrag No. 42 schreibt:
Kannst Du kurz nochmal die Bildungsvorschrift für die "mystischen Zahlen" mathematisch darstellen?

siehe hier

Ja genau...


-----------------
Gruß blindmessenger



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
Ehemaliges_Mitglied
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.45, eingetragen 2019-11-16


Lieber querin,

es wäre nette, wenn Du die vermutete Vereinfachung in #41 ergänzen könntest, für die Sage-Enthusiasten.


Am Rande: Ja und? Ist jetzt die Collatz-Vermutung damit gelöst, oder was?  😄



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
blindmessenger
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2016
Mitteilungen: 1102
Aus: Sachsen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.46, vom Themenstarter, eingetragen 2019-11-16


2019-11-16 18:43 - geroyx in Beitrag No. 45 schreibt:
Lieber querin,

es wäre nette, wenn Du die vermutete Vereinfachung in #41 ergänzen könntest, für die Sage-Enthusiasten.


Am Rande: Ja und? Ist jetzt die Collatz-Vermutung damit gelöst, oder was?  😄

Natürlich nicht...

Aber wir sind dran...  😉


-----------------
Gruß blindmessenger



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
blindmessenger
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.08.2016
Mitteilungen: 1102
Aus: Sachsen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.47, vom Themenstarter, eingetragen 2019-11-17


Wenn man das mal ein bißchen ausformuliert sieht es so aus:

$6(\frac{x-3}{4})+5=\frac{3x+1}{2}$

$6(\frac{x-1}{8})+1=\frac{3x+1}{4}$

$6(\frac{x-13}{16})+5=\frac{3x+1}{8}$

$6(\frac{x-5}{32})+1=\frac{3x+1}{16}$

...

Ergibt:

$\frac{3}{2}x+\frac{1}{2}=\frac{3}{2}x+\frac{1}{2}$

$\frac{3}{4}x+\frac{1}{4}=\frac{3}{4}x+\frac{1}{4}$

$\frac{3}{8}x+\frac{1}{8}=\frac{3}{8}x+\frac{1}{8}$

$\frac{3}{16}x+\frac{1}{16}=\frac{3}{16}x+\frac{1}{16}$

...

 😄


-----------------
Gruß blindmessenger



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
juergenX
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 08.07.2019
Mitteilungen: 274
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.48, eingetragen 2020-03-03


2019-11-08 12:03 - pzktupel in Beitrag No. 8 schreibt:
Okay blind...

Hab was programmiert , Stellenanzahl offen

Läuft alles über Zeichenketten.

Version 3, mit Speicherung der Zahlenentwicklung und Streichung führender Nullen





Das interessiert mich auch noch mal sehr, aber der Link ist tot oder alt?
Kannste das bitte nochmal einstellen oder PM oder irgendwo zur Verfügung stellen?
danke!



das thema ist immer noch hot 😎



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
juergenX
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 08.07.2019
Mitteilungen: 274
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.49, eingetragen 2020-03-03


2019-11-07 23:32 - pzktupel in Beitrag No. 4 schreibt:

Ich beobachtete, das 2^2n-1 durch 3 teilbar ist ein Schlüssel darstellen bei der MOD-Bestimmung mit einer 2er Potenz.


solche Beobachtung schau ich mir an und stelle fest $2^{2n}-1= (2^n-1)(2^n+1)$ und $2^n$ ist gerade , also ist einer der beiden Faktoren $\equiv 0 \mod 3$


Zum kopfrechenen-warmbleiben brech ich ab bei sichtbar hohen 2er Potenzen in der Folge.

$2^{2}-1 = 3,10,5,16$
$2^{4}-1 = 15,46,23,70,35,106,53,160$

wenn ich als Praemisse alle Collatzfolgen unterhalb der Startzahl verfolgt habe, kann ich auf aufhören bei Teilbarkeit durch 4.



...und dass die Folgeglieder davon mit 1,5,21,85,......ein Schlüssel darstellen bei der MOD-Bestimmung mit einer 2er Potenz.


versteh ich nicht ganz aber ich les das nochmal alles in Ruhe



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
pzktupel
Aktiv Letzter Besuch: in der letzten Woche
Dabei seit: 02.09.2017
Mitteilungen: 1457
Aus: Thüringen
Zum letzten BeitragZum nächsten BeitragZum vorigen BeitragZum erstem Beitrag  Beitrag No.50, eingetragen 2020-03-03


V4




-----------------
Pech in der Liebe , Glück im Verlieren !!!



Eine Notiz zu diese Forumbeitrag schreiben Notiz   Profil  Quote  Link auf diesen Beitrag Link
blindmessenger hat die Antworten auf ihre/seine Frage gesehen.
Seite 2Gehe zur Seite: 1 | 2  
Neues Thema [Neues Thema] Antworten [Antworten]    Druckversion [Druckversion]

 


Wechsel in ein anderes Forum:
 Suchen    
 
All logos and trademarks in this site are property of their respective owner. The comments are property of their posters, all the rest © 2001-2020 by Matroids Matheplanet
This web site was originally made with PHP-Nuke, a former web portal system written in PHP that seems no longer to be maintained nor supported. PHP-Nuke is Free Software released under the GNU/GPL license.
Ich distanziere mich von rechtswidrigen oder anstößigen Inhalten, die sich trotz aufmerksamer Prüfung hinter hier verwendeten Links verbergen mögen.
Lesen Sie die Nutzungsbedingungen, die Distanzierung, die Datenschutzerklärung und das Impressum.
[Seitenanfang]