• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

(Un)regelmässigkeiten von Pi einfach visualisieren?

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
3.446
Moin, vorweg:
- ich kann aus Basic- oder PHP-Code (und diverse einfache andere Sprachen) ganz grob erkennen was da passieren soll, hab aber keinen Plan selbst etwas zu schreiben.
- ich weiss, dass es in Pi keine Regelmässigkeiten im herkömmlichen Sinne gibt

ich suche eine möglichst einfache Möglichkeit, wie ich in Pi diverse Regelmässigkeiten visuell darstellen (oder überhaupt finden) kann.
Alternativ könnte man es auch "interessante Zahlen" nennen

Beispiele in bunt:
3,141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 944 592 307 816 406 286 208 998 628 034 825 342 117 067 9

rot: Wiederholung
cyan: Spiegel

optional (zu einfach) gelb: volle 10er oder 100er oder Schnapszahlen etc.

Für weitere Vorschläge zu interessanten Zahlen bin ich offen, ich suche allerdings erstmal einen einfachen Weg überhaupt was auf die Beine zu stellen.

P.s.
- Wiederholungs-und Spiegelerkennung sollte nur bei 3-stelligen Zahlen anfangen, 2-stellige gibts wie Sand am Meer. Edit: Ich bin besonders interessiert an 4-stelligen Zahlen und grösser.
- Im Beispiel sind 100 Ziffern, ich bin vorerst nur an einer Lösung von 100 bis max 1000 Ziffern interessiert
P.p.s. Ja ich kann mind. 100 Stellen aus dem Kopf aufsagen...
 
Zuletzt bearbeitet:

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.762
Ort
Midgard
Viel zu unspezifisch, ein Beispiel das mir sofort auffällt:
Wie soll es aussehen wenns andere Wiederholungsgruppen gibt?

Im 32 Bit Farbraum gäbe es 255 Rottöne die keine Sau unterscheiden könnte in der Auflösung.

Der Nutzen/das Ziel erschließt sich aus dem Post noch überhaupt nicht.

Edit:
Vielleicht solltest du da mal drüber schlafen, das klingt nach dem klassischen Musterbias, dafür gibts sicher ein total fancyge Fachwort das ich nicht kenne, denn das Problem habe ich schon bei mir selber und einer Menge andere Menschen beobachten können.
Natürlich siehst du überall Muster, könntest du das nicht wärst du gestorben bevor du sprechen lernen konntest. Oder nochmal anders formuliert: Mit genug Interesse kann man mit allem eine Weltuntergangstheorie belegen. Auch mit deinen geposteten Pi Nachkommastellen. Wie Wärs mit Datum und Cäsarchiffren Kombinationen?

Falls du die 4stelligen für einen Tick deiner Zwangsstörung brauchst wirst du die halt etwas genauer definieren müssen. Aber performancetechnisch siehts bisher nicht nach eeinem Problem aus wenn du weniger als ein paar Tausend Nachkommastellen brauchst. Und bei den bisher genannten Mustern bleibst.
 
Zuletzt bearbeitet:

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
3.446
  • Thread Starter Thread Starter
  • #3
Wie soll es aussehen wenns andere Wiederholungsgruppen gibt?
Mir geht es überhaupt nicht um das visuelle, sondern einzig um das finden von "auffälligen" Zahlengruppen. Wenn sich da verschiedene Kategorien überschneiden, findet sich sicherlich eine Lösung.
Der Nutzen/das Ziel erschließt sich aus dem Post noch überhaupt nicht.
Das kann man sich aus dem p.p.s. grob ableiten. Mir geht es einerseits drum, einfach merkbare Zifferngruppen zu - ääh - merken, andererseits aber auch darum "schöne" Zahlen innerhalb PI zu finden.

Edit: Zu Deinem Edit: Ich hab da schon paar Monate drüber geschlafen und weiss ob ich ne Störung hab diesbezüglich oder nicht.
Ich weiss nicht, ob es Dich beruhigt, aber es geht mir rein um Ästhetik. Ich will nix beweisen oder eine Verschwörung aufdecken.
Ich will schöne Zahlen sehen, das ist alles.
 

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
3.446
  • Thread Starter Thread Starter
  • #4
damit wir nicht an unseren Edits vorbeilesen:
Natürlich siehst du überall Muster, könntest du das nicht wärst du gestorben bevor du sprechen lernen konntest.
Nein. Das Ziel ist Muster zu finden. Ohne Grund, ohne Ziel, einfach so. Oder aus ästhetischen Gründen zum stumpf auswendig lernen.

Wie Wärs mit Datum und Cäsarchiffren Kombinationen?
Das ist mir bekannt.

wenn du weniger als ein paar Tausend Nachkommastellen brauchst. Und bei den bisher genannten Mustern bleibst.
Wenn Du meinst, dass 1 Mio Stellen zielführender sind, gerne. Die 1000 war ne rein fiktive Zahl um das Problem kleinzuhalten.
 

KaPiTN

Boomer ♪♪♫♪♫♫♪

Registriert
14 Juli 2013
Beiträge
26.442
Ich bilde mir ein, Dein Vorhaben verstanden zu haben. Ich habe da mal etwas mit Texten und Wörtern gemacht, was ja in einer Weise ähnlich ist.
Ich habe da jetzt ad hoc noch keine konkrete Antwort, aber komme darauf zurück.
 

sia

gesperrt

Registriert
26 März 2015
Beiträge
5.931
Ort
FFM (NSFW)
Python kann sehr gut mit vielen Daten umgehen.

Mit den verschiedenen Arten von Kombinationen musst du auch verschieden umgehen. Die Wiederholung von 3 Ziffern im späteren String findest du, indem du Stelle für Stelle vorgehst und dir 3 oder mehr Ziffern herausschneidest, die du dann einfach im restlichen String suchst.

Die Spiegel findest du, indem du ein Muster definierst (z.B. abcba) und einfach wieder Stelle für Stelle vergleichst. Für abcba speicherst du einfach 5 aufeinanderfolgende Stellen in ein Array und schaust ob die erste Ziffer gleich der letzten und die zweite Ziffer der vorletzten entspricht. Das lässt sich auch beliebig algorithmisch auf abcdedcba erweitern, indem du Rekursion anwendest – immer und immer wieder die erste und letzte Ziffer vergleichen und wenn sie gleich sind, rausschneiden und wiederholen, bis nur noch 1 Ziffer verfügbar ist.

Was du also hast, ist kein Syntax-, sondern ein algorithmisches Problem.
 

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
Eines vorweg, es folgt mal wieder eine längerer Aufsatz, wer ihn nicht lesen will/kann/mag, sollte es nicht tun - aber auch nicht deswegen negativ kommentieren.
Es ist nur eine Idee und wenn die doof ist, ist das ein anderer Punkt!

-----

Hallo Dexter, ich finde deine Idee eigentlich sehr interessant, auch wenn ich selbst nicht dem "mathematischen Wahnsinn" in dieser Form verfallen bin ;)
Aber mal nicht doof geflunkert.

Ich kann jetzt nichts dazu sagen, was oder welche Zahlen "interessant" sind, da habe ich relativ wenig bis kaum Verständnis.
Ob das nun Primzahlen, goldener Schnitt oder andere Harmonien sind, bleibt ja im Grunde dir überlassen. Wichtig ist das Problem mit Regeln zu untermauern.

Zum einen anfänglichen Algorithmus, was das Spiegelmuster angeht, hätte ich aber schon einen Vorschlag:

Fang an dir Positionen von einzelnen Zahlen einer Zeichenkette/Strings von 1000 Zeichen anzusehen, wie du diesen generierst/ausliest aus einer Datei, bleibt ja dir überlassen, aber 1000 Zeichen mal als Beispiel.
Vom Aufbau würde ich nun in so fern Anfangen, mit einzelnen Zahlen und Positionen.

Um bei deinen Spiegelgruppen zu bleiben:

Sagen, wir, um einen Spiegel zu erzeugen, muss die in der Zahl "178323817" ja anfänglich nicht Zeichen für Zeichen betrachtet werden, sondern mein genügsamer Vorschlag, suchen den String nach Paaren ab.
In dem Fall fängst du mit der 0 bzw. in diesem Fall mit "1" an und zählst hoch.

Mit einem "gib mir die Position von der ersten Zahl" (p1) - dann die nächste Zahl an Position (p2) in der Zeichenkette.

Sagen wir die Zahl "1" ist gesucht: p1 = 0 und p2 = 7

Das wäre der folgende Bereich: 1 783238 1 (.... 7 wird abgeschnitten)


Um beim Spiegel zu bleiben, wenn der Abstand zwischen p2 - p1 gerade ist, das heißt 7 - 0 ist 7, also ungerade, wir benötigen bei diesem Problem aber eine gerade Anzahl an Zahlen dazwischen (wir fangen bei Position 0 an, nicht eins) oder mindestens als Ergebnis der Rechnung der Positionen 2, 4, 6, 8... - damit der Spiegel funktionieren kann!

Edit: Falls ich irgendwie gerade die Positionen verbasele, entschuldigt das.... :o

Also fällt dieser Block für die 1 "flach",

Anders sieht es aus bei der 8:

Ganzer Teil : "178323817"

Bei der suche nach der Zahl "8": (17) .... 83238 (17....)

p1 = 2 | p2 = 6 = p2 - p1 = 4

4 ist gerade, also ist es eine Möglichkeit eines Spielgels, innerhalb der Zahlen von p1 hoch zu p2.

Als nächstes würde ich die Zahlen innerhalb vergleichen, dabei gehen wir so vor:
p1 + 1 = 3
p2 - 1 = 3

identisch! - Als suchen wir weiter

p1 + 2 = 2
p2 - 2 = 2

identisch, jetzt müssen wir aber noch prüfen bei jedem Durchgang prüfen, ob p1 + X und p2 - X sich berühren.
Wenn Sie dies tun, tragen wir die Zahlen als Spiegelgruppe in unserer Liste ein, weil alle Zahlen dazwischen identisch sind.

Wenn eine p2 - X abweicht, haben wir kein Spiegelpaar, also gehen wir von p2 zu p3 usw...

Das Beispiel ist natürlich auch etwas einfach, weil keine weitere "8" enthalten ist dazwischen, aber dann sollte die Regel greifen, die "8" im Suchraum, kann nur ein Spiegel sein, wenn der Abstand gerade ist bzw. ungerade, wenn von 0 gezählt wird.
Sagen wir an realer Zählstelle 1 und 4 wären zwei "8": 4 - 1 = 3 ungerade,
kann also laut "Regel" kein Spiegel sein, da kein Spiegel sein, bei 0 Zählung ja, sonst nein.

Also suchst du die nächste "8", ist diese an einer gerade Stelle, erst dann schauen wir, ob sich ein Spiegel bildet, oder die übernächste, oder übernächste oder oder... ;)

----

Wenn du sagst, aber halt "1000 fixe Zahlen in der Zeichenkette sind "fehleranfällig", kannst du es auch dynamisch machen:

Sagen wir du willst mit 1000 Zeichen arbeiten - weißt aber nicht ob Zahl 1001 nicht genau "die" Spiegelzahl ist!
Das ist relativ einfach, du suchst bei jedem Durchlauf die Position nach 1001 bis 1XXX durch nach einem "geraden" Positionstreffer.

Sagen wir an Stelle 1 (in Code 0) ist der Start die 1 und an 1014 die nächste 1 - dann könntest du hier vielleicht schon abbrechen und evtl. diesen Block nehmen, das sich die Zahl nur bis zum nächsten "Gegenpart" spiegeln könnte (ob das wahrscheinlich ist oder nicht, kann man vermutlich nicht 100% sagen....) - aber 1013 - 0 = 1013 = ungerade.

Damit wäre das Schema der ungeraden Zahlen befriedigt.

Das Suchen einer "nächsten Spiegelpostion" kannst du ja von Zahl zu Zahl, während eines Hochzählens erneut erledigen, wenn an Postion 4 die "8" steht, suchst du nach 1000+ Zeichen (gerade Anzahl) und suchst die nächste folgende "8", die an ungerader Position liegt (oder gerade, wenn wir bei 0 anfangen)

Ich glaube das wäre, für das Spiegelmuster ein guter Ansatz.
Ist natürlich nur eine Idee, aber so würde ich das wohl aus dem Bauch heraus machen.

Edit 2: Eine weitere Herausforderung wäre natürlich noch, in den kleinsten Spiegelpaaren größere zu ermitteln, also Anfang, Ende, und gibt es weitere größere Gruppen, die man zusammenführen kann ;)

---

Zum Thema Visualisierung, kommt wohl darauf an, welche Sprache du einsetzen willst und was dir am leichtesten von der Hand geht. Gibt vermutlich endlos viele Möglichkeiten je nach Sprache deiner Wahl. :)
 
Zuletzt bearbeitet:

KaPiTN

Boomer ♪♪♫♪♫♫♪

Registriert
14 Juli 2013
Beiträge
26.442


Ich habe mir das gerade mal angesehen und sehe da die Problematik nicht in der Programmierung, sondern in sich überlagernden Sequenzen.
Du hast da als erste die 592 markiert. Die davor liegenden 141 und 415 kommen aber auch 2 mal unter den ersten 1000 Nachkommastellen vor. Das wird zwar schön bunt, aber man erkennt keine Muster, weil Ziffern in mehreren Sequenzen vorkommen, aber nur eine Farbe haben können.
 

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
Warum fast du das nicht in den Zahlengruppen zusammen, anstelle der Zahlen in der Sequenz, herausgelöst, nicht markiert.

Alle Gruppen von X?

Oder ist auch die Position innerhalb der Zahlenfolge wichtig?

Dann könnte man ja sagen, das Zahlen als Gruppen immer RGB 50 50 50 Unterschied haben sollen, und wenn man Gruppen benennen will, tut man dies separat?
 

KaPiTN

Boomer ♪♪♫♪♫♫♪

Registriert
14 Juli 2013
Beiträge
26.442


Es geht um folgendes:

Du findest hier beispielhaft 4 Sequenzen, die mehrfach vorkommen

3.141592
3.141592
3.141592
3.141592

letztendlich erkennt man nur die letzte, weil sie die anderen übermalt:

3.141592

Jetzt wird dann noch die 592 beim 2 Vorkommen von einer anderen Sequenz teilweise übermalt und so bleibt nur eine blaue 592.

Somit scheitert der Versuch gleiche Sequenzen mit der gleichen Farbe kenntlich zu machen
 

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
Ja, du hast Recht, ich weiß was du meinst, es wird "übermalt" bzw. dekoriert, aber warum arbeitest du an einem langen, dekorierten, String?
Arbeite doch an gleichen Sequenzen, wie ich schon vorgeschlagen hatte, anhand der Kernziffer. Und füre diese als Gruppen zusammen. bei deiner Variante könntest du höchstens die Schnittmengen "mixen", also 20 aufaddieren oder abziehen, je nach Zugehörigkeit zur Gruppe(nfarbe).

Muss es so aufgelistet sein, oder ist nicht eher die Häufigkeit der Kernzahl wichtiger? ;)
 

KaPiTN

Boomer ♪♪♫♪♫♫♪

Registriert
14 Juli 2013
Beiträge
26.442
So wie ich Dexter verstehe, geht es ihm doch um die Visualisierung, nicht um eine statistische Auswertung.
 

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
Das sagt der Titel, aber er scheint auch noch Ideen zu brauchen, wie man das ganze in Code gießen kann, so hab ich es aufgefasst. Und ist sich auch nicht sicher um die Sprache in der das ganze erfolgen soll, kennt also auch vielleicht nicht die (richtigen) Tools, die er nehmen könnte.

Und "etwas Code verstehen", ist ja nicht, "ich kann programmieren" - daher dachte ich, er braucht nen Anstoß dafür.

Aber machen wir kein großes Thema daraus, er wird sich wohl schon melden :)
 

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
3.446
  • Thread Starter Thread Starter
  • #15
herzlichen Dank für die vielen Ideen, ich nehm mal eine exemplarisch heraus, wo ich öfter falsch verstanden wurde:


Ich habe mir das gerade mal angesehen und sehe da die Problematik nicht in der Programmierung, sondern in sich überlagernden Sequenzen.
Das ist zwar ein reales Problem aber nicht meins. Wahrscheinlich habe ich "meine Aufgabe" zu kompliziert gemacht indem ich mehrere verschiedene Aufgaben in einer zusammengefasst habe.
Neu formuliert:
Ich suche Methoden, irgendeins (unabhängig) meiner Probleme herauszufinden. Ein (!) Beispiel:
- Finde alle 3stelligen Zahlen im Abstand von x plus minus yZiffern
Anderes (!) Beispiel
- finde irgendwas anderes, was irgendeine Auffälligkeit hat


Du hast da als erste die 592 markiert. Die davor liegenden 141 und 415 kommen aber auch 2 mal unter den ersten 1000 Nachkommastellen vor. Das wird zwar schön bunt, aber man erkennt keine Muster, weil Ziffern in mehreren Sequenzen vorkommen, aber nur eine Farbe haben können.
Ich dachte, ich hätte das klargestellt, ich will primär (!) nichts visualisieren, sondern Zahlen finden. (Sekundär sind "schöne Farben" auch schön, aber ich hätte gern erst mal das mathematische gelöst.)

Thesplit hat das Hauptproblem ganz gut verstanden, ich will nicht wissen, wie ich alle "schönen Zahlen" in PI in schöne Farben umwandle, sondern, wie ich EINS der verschiedenen Probleme angreifen kann und danach das nächste.

141 vs 415 fällt für mich in die Kategorie "andere schöne Zahlen". Die würde ich gern aus der "Aufgabe" erstmal raushalten wollen, weil es das unnötig verkompliziert. (Ausser ich überseh grad was, aber is auch ganz schön spät...)

Edit: Nochmal:es geht mir um Zahlen, nicht Farben.
 
Zuletzt bearbeitet:

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
Im übrigen habe ich in meiner Ausführung zum Spiegelalgorithmus einen kleinen Denkfehler...

Es ist natürlich auch möglich, einen Spiegel mit 2 oder mehr geraden Zwischenstellen zu haben: 8448 (zwei Stellen im "Suchraum", wenn man "8" sucht)

Das heißt, die "Regel" die ich oben damit aufgestellt habe es müsste ungerade sein, wäre gebrochen, dass es mindestens 838 oder 84348 (1 oder 3, 5 usw. Stellen dazwischen sein müssen)...

My bad. :)

Aber gestern Abend klang die Ursprungsvariante irgendwie logisch/effizient.
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.285
Ich habs auch wie die meisten anderen verstanden, schließlich geht im gesamten Beitrag und Titel vornehmlich um Visualisierung.
Das finden ist doch trivial für so kleine Bereiche wie die ersten tausend Ziffern. Was willst du denn konkret dazu wissen? phreak hat schon bisschen was dazu geschrieben.
Aber du musst selbstredend "finde irgendwas anderes, was irgendeine Auffälligkeit hat" jeweils definieren. Einer der Gründe ist, dass jede Zahlenfolge eine Auffälligkeit in Hinblick auf irgendwas ist.

PS.: Im wesentlichen ist das ne nette regex übung (leider bin ich nicht gut darin :D). Oder du musst halt Zeug in Variablen zwischenspeichern. Aber mit regex ist es jeweils ein Einzeiler.
[src=matlab]
digits(1000);
a = vpa(pi);
c = char(a);
indices = strfind(c, '000');
indices = regexp(c,yourpattern);
[/src]
 
Zuletzt bearbeitet:

Registriert
14 Juli 2013
Beiträge
21.875
Ort
Trollenhagen
Hm, danke für den Thread. Jetzt hab ich tatsächlich mal Bock darauf, die Zahl so weit wie möglich auswendig zu lernen. :D
Das mit den 3er Schritten ist gut, wobei die erst ab 279 bei mir losgehen im Kopf. :unknown:
 

theSplit

1998
Teammitglied

Registriert
3 Aug. 2014
Beiträge
27.417
@Dexter: Was ist eigentlich hieraus geworden, hast du mit etwas angefangen oder irgendetwas entwickelt bzw. versucht was umzusetzen?
 

dexter

Cloogshicer®
Teammitglied

Registriert
14 Juli 2013
Beiträge
3.446
  • Thread Starter Thread Starter
  • #20
@Dexter: Was ist eigentlich hieraus geworden, hast du mit etwas angefangen oder irgendetwas entwickelt bzw. versucht was umzusetzen?
Ich hab aus der Diskussion und den Vorschlägen nichts neues gelernt. Ich lerne nach wie vor stumpf auswendig ohne Eselsbrücken.
Ich find das nicht direkt schlimm, aber "Auffälligkeiten" wäre einfacher.

Edit: das war missverständlich. klar hab ich was gelernt und klar waren die Wortmeldungen qualitativ sinnvoll. ICH komme damit nur einfach nicht wirklich weiter.
 
Zuletzt bearbeitet:
Oben