Wie kann ich in Python einen code weiterführen lassen?
Nehmen wir an wir haben die zahlenfolge 135792468
Ich möchte erreichen das er die zahlenfolge beliebig lange weiterführen.
Welche Keys oder welches Script muss ich schreiben das er das weiterführen kann?
gibt es eine Logik bei der Zahlenfolge? etwa immer abwechselnd gerade und ungerade (>0), jeweils bis die nächste zahl >9 wäre?
Ich habe vor, dass er die Logik hinter dem Code erkennt und ihn dan weiterführt
3 Antworten
Das ist ja nicht eindeutig. Mir fallen mehrere Möglichkeiten ein, die Folge fortzusetzen. Du kannst höchstens eine Menge Konstruktionsverfahren für Folgen mit der aktuellen Folge Matchen und sehen welche passt.
Wie meinst du das mit „beliebig lange weiterführen“? Wie/womit soll die Zahlenfolge (eigentlich eher Ziffernfolge) fortgesetzt werden?
Soll die Folge periodische wieder mit „135...“ fortgesetzt werden? Dann köntest du beispielsweise mit itertools.cycle() leicht einen entsprechenden Iterator bauen...
from itertools import cycle
folge = cycle([1, 3, 5, 7, 9, 2, 4, 6, 8])
# Die Folgenglieder aufzählen...
for i, a in enumerate(folge):
print(f"{i}-te Zahl: {a}")
# Abbruch, damit die Schleife nicht ewig weiterläuft...
if i == 1000:
break
Aber was erwartest du denn, wie das Skript 13245768... fortsetzen soll? Theoretisch könnte da jede beliebige Ziffer als nächstes kommen.
Bei einfachen Dingen, wie 1234 könnte man ja beispielsweise etwas schreiben, das überprüft, ob die Abstände zwischen benachbarten Folgengliedern konstant ist, und dann diese Konstante immer weiter addieren, um die nächsten Folgenglieder zu erhalten. Das wäre dann eine mögliche Fortsetzung, die wahrscheinlich in vielen Fällen dem entspricht, was man möchte.
Aber im allgemeinen Fall...? Wie willst du da weiter fortsetzen? Das Problem ist ja: Es kann und wird mehrere verschiedene Muster geben, die man in Zahlenfolgen reininterpretieren kann... Welches der Muster soll dann verwendet werden?
Aber wie würde das nun weitergehen? Was würde bei 13245768... danach kommen. ...9102... oder ...9111012..., oder, oder, oder? Oder soll die Folge an der Stelle dann abbrechen?
Was wäre beispielsweise bei 1, 2, 3, 5, 7, ...? Was kommt da als nächstes? Da gäbe es beispielsweise die Möglichkeit, das als nächstes 11 als nächste Primzahl kommt. Andererseits gäbe es die Möglichkeit, dass das Muster auf der Addition von +1, +1, +2, +2, +3, +3, ... basiert und dann als nächstes eigentlich 10 kommt. Welche von den beiden Möglichkeiten wäre dir hier lieber? Oder vielleicht hättest du hier eine andere, dritte Möglichkeit lieber?
Das ist definitiv nicht so einfach!
Was man machen könnte, wäre eine Datensammlung entsprechender Muster, wie du sie haben möchtest, anzulegen, und dann eine künstliche Intelligenz mit diesen Daten zu trainieren. Das geht aber über meine Programmierkenntnisse etwas hinaus, wie man das am einfachsten lösen könnte.
Wie gesagt, habe ich mich vorher noch nicht so ausführlich mit künstlicher Intelligenz und neuronalen Netzen auseinandergesetzt.
Aber per Google habe ich spontan den folgenden Artikel gefunden, der dich diesbezüglich wohl interessieren könnte:
https://www.linux-magazin.de/ausgaben/2017/10/snapshot/
Auf Seite 1 ist da auch weiter unten ein entsprechendes Skript aufgeführt.
import random
zahlenfolge = ""
haeufigkeit = 5
count = 0
while count < haeufigkeit:
zahlenfolge += str(random.randint(0,9))
count += 1
prtint(zahlenfolge)
Meinst du das in der Art weiterführen lassen?
Dadurch setzt er leider hinter die zahlenfolge zufällig Zahlen. Ich brauch für mein Programm aber eine Möglichkeit das er zb. 12345 dann mit 6789.... und so weiter erweitert. Fällt Ihnen etwas ein?
Achso, der soll am Anfang das Pattern erkennen was in den ersten Zahlen steckt?
Ein leichteres Beispiel wäre:
Ich habe die Zahlen 1234, ich möchte erreichen das er sie dann mit 56789.... weiterführen.
Komplexer wäre dann 13245768....