Ich habe hier eine Problemstellung und - Schande über mich - den totalen Black-out…
Problem: Gegeben sind X Zeichen (beispielsweise für x=11 die 11 Buchstaben von „A“ bis „K“ oder die Zahlen von 1 bis 11).
Aus diesen 11 Zeichen sollen nun Paare gebildet werden. Ok, nichts einfacher als das - aus 11 Zeichen lassen sich 55 Paare bilden. Diese Lösung lässt sich an Hand der entsprechenden Formel aus der Kombinatorik ermitteln.
Jetzt stellen wir uns diese 55 Paare untereinandergeschrieben vor…
Wenn wir nunmehr immer 4 Zeichen in eine Zeile schreiben, so sind darin ja immer gleichzeitig 6 Paare vertreten. Zum Beispiel ABCD = „AB“, „AC“, „AD“, „BC“, „BD“ und „CD“.
-
Aufgabe: Wie ermittelt man rein rechnerisch die Anzahl der Zeilen (oder anders ausgedrückt die Anzahl der 4er-Kombinationen), die mindestens erforderlich sind, um alle Zeichenpaare abzubilden (einfach 55 \ 6 +1??)
-
Aufgabe: Wie sieht hier der Algorithmus aus, um alle notwendigen 4er-Beziehungen zu erzeugen, welche wiederum alle möglichen Zeichenpaare enthalten? Wie kann man auch möglichst Wiederholungen vermeiden?
Now it becomes difficult…
Die gleiche Situation wie vor, nur stehen nun jeweils fünf Zeichen auf einer Zeile. Damit sind pro Zeile 10 Varianten der Zahlenpaare enthalten (wieder das Beispiel „ABCDE“ = „AB“, „AC“, „AD“, „AE“, „BC“, „BD“, „BE“, „CD“, „CE“ und „DE“ - nicht vergessen: es geht bislang aber immernoch um die 11 Zeichen bis K!)
And now the final shoot…
Jetzt wollen wir die ganze Angelegenheit flexibel machen.
Flexibel bedeutet, dass wir uns 1. nicht auf 11 Zeichen beschränken wollen, 2. auch nicht nur auf Zeichenpaare und 3. auch die Anzahl der Zeichen pro Zeile frei wählbar ist…
- Aufgabe: Wie ermitteln wir
a) mathematisch:
wieviele Zeilen (Z) mindestens nötig sind (Wiederholungen ausschließbar?), um
alle Varianten (V)
mit (A) Anzahl vorgegebener Zeichen (also 2, 3, … n)
von insgesamt (S) gegebenen Zeichen (also n+1,…, S-1)
zu berechnen und
b) logisch (programmtechnisch),
um diese gesuchten Varianten zu erzeugen und auszugeben? Wie kann man die Sache so optimieren, dass die Anzahl der Wiederholungen so gering als möglich ist?
Ich möchte dieses theoretische Problem gern am Computer lösen und brauchte Formeln und Algorithmen dazu…