ich stehe vor der ( selbst gestellten ) Aufgabe den Sukhotin`schen Algorithmus in Python umzusetzen. Dabei habe ich ich mich vermutlich gedanklich "verrannt", soll heißen der Einstieg zur Lösung mit einer Liste hat in eine Sackgasse geführt.
Aber zuerst einmal die Problembeschreibung. Ich verlinke hier mal den Text von Jacques Guy. Nicht das ich zu bequem wäre selbst das Problem zu beschreiben aber kleinschrittiger würde ich es auch nicht hinbekommen.
http://languagelog.ldc.upenn.edu/myl/guySukhotin.pdf
Meine konkrete Frage zu dem Problem: Ist der Versuch die Matrix mit einer zweidimensionalen Liste "nachzubilden" der richtige Ansatz oder muss zur Lösung ganz anders vorgegangen werden ? Mir ist leider nicht klar wie ich die benachbarten Buchstaben innerhalb der Liste vergleichen und die Füllwerte (1,2,3,4) enstprechend ändern kann. Zumal die Größe der "matrix" ja auch, je nach Wortlänge, variieren kann.
Hier der ( eigentlich nutzlose ) Code, nur um zu zeigen wie ich einsteigen wollte:
Code: Alles auswählen
#!/usr/bin/env python
# -*-coding: utf-8-*
import numpy as np
eingabe = ("SAGIT") # das wird später input
liste = list(("SAGIT"))
laenge = (len(liste))
new_list = []
n = 1
for start_index in range(0, len(liste), n):
counter = n + 1
new_list.extend(liste[start_index:start_index+n])
for counter in range(laenge):
new_list.append(counter)
new_list.append(0)
new_list.pop()
length = len(new_list)
split_index = (length // (laenge + 1))
splits = np.array_split(new_list, split_index)
print("Block:")
print(liste)
for array in splits:
# liste2 = array.tolist()
print(list(array))