Ich lerne Schema und ich versuche Permutationen mit Wiederholungen bestimmter Größe zu generieren.Wie generiere ich alle Permutationen bestimmter Größe mit Wiederholungen in Scheme?
Zum Beispiel, gegeben n = 4 und setzen S = {a, b, c, d, e, f}, möchte ich alle möglichen Permutationen generieren: {a, a, a, a}, { a, a, b}, ..., {a, a, a, f}, {a, a, b, a}, {a, a, b, b}, ..., {a, a, b, f}, ... {f, a, a, a}, {f, a, a, b} ..., {f, a, a, f}, ... {f, f , f, f}.
Das Problem ist, dass ich nicht verstehen kann, wie man 'a' 4 mal wählt, und erinnere mich, dass ich es 4 Mal ausgewählt hatte, dann 'a' 3 mal und 'b' einmal, und erinnere mich an alle das, also wähle ich es nicht wieder.
Ich weiß, dass diese Art von Problemen am besten mit rekursiven Algorithmen gelöst werden, aber es macht nur alles komplizierter, wie, wie erinnere ich mich in der Rekursion, welche Elemente ich ausgewählt habe.
Ich weiß nicht, wie ich dieses Problem überhaupt angehen soll. Ich wäre sehr froh, wenn jemand den Gedanken zur Lösung dieses Problems ausschreiben würde. Ich würde es sehr schätzen!
Bitte helfen Sie mir.
Danke, Boda Cydo.
SGM, das ist die beste Erklärung. Es zeigt wirklich, wie man rekursiv über diese Probleme denkt. Vielen Dank für die Erklärung! Ich weiß über MAP und andere Funktionen höherer Ordnung, hatte aber vorher noch nichts von FLATMAP gehört. Jetzt habe ich auch davon erfahren. :) – bodacydo