Wörter mit bestimmten Eigenschaften erzeugen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
KombatElWombat
User
Beiträge: 5
Registriert: Donnerstag 8. März 2018, 20:15

Hallo zusammen, ich kämpfe mich gerade durch das Buch "Informatik" von Tobias Häberlein und hänge explezit an einer Aufgabe fest.
Die Aussage der Aufgabe finde ich absolut unverständlich, ich hab keine Ahnung was er von mir will. Sogar die Lösung, deren code ich zwar verstehe, hilft mir nicht, mal abgesehen davon das sie nicht funktioniert.
Da die Lösung für die erste Ausgabe ist könnte es sich um Python 2 handeln, die zweite Ausgabe arbeitet allerdings mit Python 3. Das nur am Rande, ich bin noch zu sehr Noob um das einschätzen zu können.
Das Themengebiet für das diese Aufgabe gilt sind die Funktionen: lambda, map und filter, wobei ich schon gelesen hab, das diese Funktionen nicht gerne gesehen werden.

die Aufgabe Lautet:
Schreiben Sie eine Pythonfunktion woerter(n), die alle Wörter der Länge n mit
Buchstaben aus A erzeugt.
Tipp: Zur Lösung kommt man elegant rekursiv, indem man überlegt, was welchen
Wert woerter(0) und woerter(1) haben muss und anschließend überlegt, wie man
woerter(n) aus woerter(n–1) berechnen kann.
gegeben sind diese Definitionen:
C = 'abcdefghijklmnopqrstuvwxyz'
D = map(str, range(0,10)) ; A = C+D
Die "Lösung" lautet:

Code: Alles auswählen

def woerter(n): 
 if n==0: return [] 
 if n==1: return list(A) 
 return [wort+c for c in A for wort in woerter(n-1)]
Es würde mir schon reichen wenn mir jemand sagen kann was ich überhaupt tun soll ... ich bin komplett ratlos :K
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

@KombatElWombat: mathematisch würde man wohl sagen, man sucht alle Kombinationen der Länge n aus den Elementen der Menge A. Aber das wurde mir auch nur aus der Lösung und nicht aus der Aufgabenstellung klar. Python liefert das schon mit `itertools.combinations_with_replacement(A, n)`
KombatElWombat
User
Beiträge: 5
Registriert: Donnerstag 8. März 2018, 20:15

Ah, okay! Aber damit kann ich schonmal mehr anfangen! Danke dir!
KombatElWombat
User
Beiträge: 5
Registriert: Donnerstag 8. März 2018, 20:15

Da Tante Edit, nein gesagt hat, sorry für den Doppelpost!
Was sich mir noch nicht ganz erschließt, was will er mir mit den gegebenen Definitionen sagen?
soll das ein "abcde...xyz123456789" werden? oder sollen das auch schon Kombinationen sein?
Sirius3
User
Beiträge: 17747
Registriert: Sonntag 21. Oktober 2012, 17:20

Die Definition soll nur die Definition von A sein.
Antworten