Seite 1 von 1

Muster in einer Zahlenfolge erkennen

Verfasst: Samstag 9. Dezember 2017, 19:10
von Benutzername314
Hallo!

Ich suche eine Möglichkeit in Python ein Muster in einer Zahlenfolge zu erkennen. Das sollte dann ungefähr so aussehen:

>>> pattern([1,2,3,4])
n+1
>>> pattern([1,3,7,15,31,63,127])
2**n - 1


Gibt es sowas?

Re: Muster in einer Zahlenfolge erkennen

Verfasst: Samstag 9. Dezember 2017, 19:43
von __deets__
ich behaupte mal nein. Man kann maschinenelle Lernverfahren einsetzen, um Sequence-Prediction zu machen - aber die liefern dir bestenfalls eine passende naechste Zahl, doch keine solche kompakte Darstellung. Ganz allgemein gesprochen kann die Erzeugungsvorschrift ja beliebig kompliziert sein. Also muesste eine solche Funktion einen beliebigen Algorithmus erraten, aus einer kleinen Folge von Zahlen. So etwas gibt's nicht.

Re: Muster in einer Zahlenfolge erkennen

Verfasst: Samstag 9. Dezember 2017, 21:44
von pixewakb
Du kennst oesis.org ?

http://oeis.org/?language=german

Du könntest selbst ein Tool schreiben, das dort Zahlenfolgen abfragt und so Rückmeldungen gibt. Problem könnte sein, dass die Zahlenfolgen nicht unendlich lang sind (vermute ich) und d. h. du hast nur Treffer, wenn den Anfang deiner Zahlenfolge kennst.

Re: Muster in einer Zahlenfolge erkennen

Verfasst: Sonntag 10. Dezember 2017, 09:42
von noisefloor
Hallo,

vor ein paar Ausgaben hatte Mike Schilli im Linux-Magazin so eine Aufgabe mit Python und maschinellem Lernen gelöst. Das Ergebnis war aber, selbst für einfache Folgen, eher "ernüchternd" (=nicht genau). Und wie __deets__ schon sagt: der Computer gibt nur die nächsten Zahlen, keine Funktion.

Theoretisch könntest du natürlich probieren, im 2. Schritt die Zahlenfolge mit einer Gleichung zu fitten - da du aber vorher nicht weißt, ob die Gleichung linear, exponentiell, ... ist, ist das dann nur Trial&Error und bringt ziemlich sicher nicht das gewünschte (exakte) Ergebnis.

Gruß, noisefloor