Wie kann ich in Python einen code weiterführen lassen?

Ziegelstein43  07.07.2023, 13:05

gibt es eine Logik bei der Zahlenfolge? etwa immer abwechselnd gerade und ungerade (>0), jeweils bis die nächste zahl >9 wäre?

Knopas929 
Fragesteller
 07.07.2023, 13:46

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

Knopas929 
Fragesteller
 07.07.2023, 13:38

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....

0
mihisu  07.07.2023, 13:45
@Knopas929

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?

0
Knopas929 
Fragesteller
 07.07.2023, 13:51
@mihisu

13245768 bedeutet erst die ersten beiden ungeraden und dann die ersten beiden geraden usw.

Einfacher wäre es wenn er erkennt wie ein Code funktioniert und ihn dann erweitert

0
mihisu  07.07.2023, 14:06
@Knopas929

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.

1
Knopas929 
Fragesteller
 07.07.2023, 14:20
@mihisu

Eine künstliche Intelligenz die die Muster von codes erkennt wäre gut. Gibt es vielleicht eine Seite auf der man ähnliche scripts bekommt? Das übersteigt auch meine Programmier Kenntnisse.

0
mihisu  07.07.2023, 15:03
@Knopas929

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.

0
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?


Knopas929 
Fragesteller
 07.07.2023, 13:21

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?

0
xTheForza  07.07.2023, 13:22
@Knopas929

Achso, der soll am Anfang das Pattern erkennen was in den ersten Zahlen steckt?

0