Fortlaufende Zahlenreihe erkennen

Gast #5793256
Lesenswert?

Hallo,

ich bin auf der Suche nach einer Software welche Zahlenreihen erkennen 
kann und die nächste Zahl in der Reihe vorhersagt ähnlich wie bei Excel

1
2
3
4

Das Programm soll dann die nächste Zahl (5) vorhersagen.

Nur eben etwas komplexer

Danke und Grüße
Sebastian
#5793285
Lesenswert?

Definiere "etwas komplexer". Konstante Differenzen und Faktoren lassen 
sich leicht erkennen, danach landet man Schritt für Schritt entweder bei 
einer Sammlung priorisierter Regeln (so arbeitet vermutlich Excel) oder 
einem Versuch in künstlicher Intelligenz. Das bekannteste Projekt dazu 
dürfte Seek-Whence sein, das Douglas Hofstadter in Fluid Concepts and 
Creative Analogies 
(https://en.wikipedia.org/wiki/Fluid_Concepts_and_Creative_Analogies) 
beschrieben hat.
#5793341
Lesenswert?

Sebastian Herbert schrieb:
> Hoffe es hilft weiter, hier noch die Auflösung

Dann programmiere halt die Auflösung.

So ein Programm das auch noch eine Zahl in drei (beliebige?) 
unterschiedliche Spalten aufsplitten soll (ohne jegliche Information 
über eine Semantik zu besitzen) und dann für die einzelnen Spalten 
unterschiedliche verkettete Regeln herzaubern soll wirst du 
wahrscheinlich nicht mal von der NSA bekommen.
Gast #5793475
Lesenswert?

Ich habe die Aufgaben der form "Setzen sie die Zahlenreihe um die 
nächsten n Zahlen fort." immer gehasst und als komplett unsinnig 
empfunden. Es gibt nämlich für jede beliebige Fortsetzung immer 
unendlich viele Funktionen oder ein Algorithmen, die diese generiert. 
z.B. https://en.wikipedia.org/wiki/Polynomial_interpolation

Ohne zusätzliche Einschränkungen gibt es also weder eine Falsche, noch 
eine Richtige Lösung, aber akzeptiert wird am ende von den Lehrern nur 
eine!!! Und "die Einfachste" ist keine anwendbare Einschränkung, weil 
komplett subjektiv und nicht mathematisch definierbar.
#5793526
Lesenswert?

Sebastian Herbert schrieb:
> @wegstaben: welche Informationen fehlen dir denn?

was brauchst du?

[x] nur eine algorithmische Idee, oder irgendetwas in einer 
Programmiersprache, oder gar als ausführbares Programm?

[x] Wenn Programmiersprache: Welche soll es denn sein?
Kannst du selber den Code auf irgendwas implementieren?

[x] Wenn fertiges Programm: Auf welcher Ziel-Hardware und 
Betriebs-System soll das denn laufen? Mikrocontroller? Windows- oder 
Linux-PC? Android oder Apple-Smartphone/Tablet? Großrechner?

[x] was ist "etwas komplexer"?

[x] Wie vollständig oder unvollständig ist deine Datenbasis? z.B.

a) 1,2,3,4 -> 5 könnte auch so weitergehen:
b) 1,2,3,4 -> 7

zu a): 1 ist Startzahl (s) und vorgegeben. Z2==S+1=2, Z3==2(=Z2)+1=3, 
Z4==3(=Z3)+1=4, Z5==4(=Z4)+1=5
Hier ist die Rechenregel also "immer eins drauf"

zu b): 1 und 2 sind Startzahlen (sa, sb) und vorgegeben.
Z3==sa+sb=3, Z4==sb+Z3(=3)-1=4, Z5==3(=Z3)+4(=Z4)=7
hier ist die Rechenregel also: Zg (grade Zahl) = beide Vorgängerzahlen 
addieren, sowie eins subtrahieren; sowie Zu (ungrade Zahl) = beide 
Vorgängerzahlen addieren.

Wenn also deine Zahlenbasis zu klein ist (hier also: nur 4 Zahlen), dann 
ist das Ergebnis "beliebig".
#5793940
Lesenswert?

Sebastian Herbert schrieb:
> dadurch werden temporäre Zugangsdaten zu unseren Anlagen
> generiert, anstelle der 01, 02 kommt die Anlagennummer und anstelle der
> letzten zwei Zahlen das aktuelle Datum.

Vorschlag: Erzeuge die Zugangsdaten mit bekanntem Algorithmus, dann 
musst du den nicht zurück-"raten"...
z.B. OATH-TOTP / https://tools.ietf.org/html/rfc6238

Da kannst du mit der Anlagen-Doku einen QR-Code mitliefern, den kann man 
einfach in die "Google Authenticator"-App (oder andOTP, wenn man's 
lieber OpenSource mag) laden, und hat ständig wechselnde 
Einmalpasswörter.

Statt Anlagennummer hast du ein (beliebig langes) shared secret. Dann 
ist auch nicht nach 99 verkauften Anlagen Schluss.
#5793992
Lesenswert?

Sebastian Herbert schrieb:
> @Michael: dadurch werden temporäre Zugangsdaten zu unseren Anlagen
> generiert, anstelle der 01, 02 kommt die Anlagennummer und anstelle der
> letzten zwei Zahlen das aktuelle Datum.
musst du den Algorithmus neu erfinden oder willst du einen bestehenden 
knacken?

wenn du einen neuen brauchst, wie "sicher" soll der sein? sind das eure 
offline Anlagen die der Azubi nicht ungefragt nutzen soll oder euer 
Kernreaktor der am Internet hängt?

wenn man nur über ein Keypad 4 Zahlen eintippen soll, reicht es 
eventuell Datum + Anlagennummer zu hashen/ in ein LFSR zu jagen.

Wenn es etwas mehr sein sollte eventuell mit shared secret (TOTP wäre da 
ein Verfahren), wenn es irgendwie ans Internet angebunden ist wäre das 
ber vllt. zu gefährlich (wenn das shared secret rauskommt hast du ein 
Problem).

Wenn du einen bestehenden Algorithmus knacken willst, poste mal ein paar 
Beispieldaten, damit man eine Vorstellung von dem Ganzen bekommen kann. 
das wird dann aber sehr wahrscheinlich mindestend gehasht sein, also 
nicht wie du es dir vorstellst zu lösen sein.
#5794000
Lesenswert?

Sebastian Herbert schrieb:
> Das Programm soll dann die nächste Zahl (5) vorhersagen

Die nächste Zahl ist aber nicht 5, sondern 0. Es ist immer 0.

Disclaimer: das Thema hatten wir hier (mindestens) schon einmal. Diese 
Art "Denksport" Aufgabe ist sinnlos. Es gibt immer unendlich viele 
Möglichkeiten, eine Folge fortzusetzen und sich für die gewählte 
Fortsetzung eine Erklärung aus dem Ar*** zu ziehen. Die einfachste 
Variante ist die, daß alle solche Folgen mit Nullen fortgesetzt werden. 
Dazu muß man sich nichts - quasi "Null" - merken ;)
Gast #5799768
Lesenswert?

Sebastian Herbert schrieb:
> Hallo zusammen,
>
> Danke für Eure Hilfe, dachte ich mir schon fast
>
> @Michael: dadurch werden temporäre Zugangsdaten zu unseren Anlagen
> generiert, anstelle der 01, 02 kommt die Anlagennummer und anstelle der
> letzten zwei Zahlen das aktuelle Datum.
>
> Beste Grüße

Wenn die Formel bzw. der Algorithmus dafür nicht erraten werden muss, 
sondern feststeht, dann sollte das leicht implementiert werden können.

Für dein obiges Beispiel:
0178913
0280314
0381915
0483716
usw.

einen Algorithmus zu erstellen, der dann die nächsten Zahlen ausrechnet 
ist jetzt nicht so schwer.

Schwer wird es dann, wenn der Algorithmus sich beliebig ändert und 
ermittelt werden soll.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren