Alle Bilder eines binären Arrays ausgeben

Status
Nicht offen für weitere Antworten.

CanisWega

Mitglied
Hallo zusammen

Ich steh gerade ziemlich auf dem Schlauch. Mein Problem ist folgendes: Ich habe einen zweidimensionalen Array. Jedes Arrayfeld kann 2 Werte (Schwarz od. Weiss) annehmen.
Ich möchte nun alle möglichen Bilder dieses zweidimensionalen Arrays ausgeben.

Es geht hierbei nicht um die grafische Ausgabe, nur um den zu verwendenden Algorithmus.

Angenommen, ich habe folgenden Array:

array[2][2]

Dann gibt es ja bekanntlich 2^4 verschiedene Bilder. Wie komme ich an diese Bilder? Für mich hört sich das nach Rekursion an, aber irgendwie will es noch nicht klappen.

Als Illustration habe ich auch noch ein Bild angehängt, falls es etwas unverständlich ist.

Falls mir jemand weiterhelfen könnte, wär ich überaus dankbar 🙂

 
Klingt nach einer "Hausaufgabe", drum will ich mal nicht zu speziell werden. 😉

Aber eine Idee waere z. B. die Kodierung jeder einzelnen Bitmap als Binaerstring. In deinem konkreten Beispiel z. B. Zahlen von 0 bis (2^4)-1. Die 0 entspricht lauter weissen Feldern. Bei 1 ist das letzte Feld schwarz. Die 2 ist binaer kodiert 10 also das vorletzte Feld schwarz. Die 3 ist 11, also die letzten beiden Felder schwarz... usw.

Rekursiv koennte man es auch loesen. Das waere implementierungstechnisch sicher auch einfacher. Dabei ist das erste Feld von vielen erst schwarz, dann weiss. Anschliessend diese Regel auf die rekursiv auf die restlichen Felder anwenden, bis es keine restlichen Felder mehr gibt (sprich, man am letzten angekommen ist).

Ich hoffe mal, diese Ideen sind nicht zu vage. Abhaengig von deinem Kenntnisstand sollte man damit aber was anfangen koennen. 🙂
 
musiKk hat gesagt.:
Klingt nach einer "Hausaufgabe", drum will ich mal nicht zu speziell werden. 😉

Es ist keine Hausaufgabe, sondern ein zu lösendes Rätsel 🙂

http://domino.research.ibm.com/Comm/wwwr_ponder.nsf/Challenges/May2008.html

Mir ist auch klar, dass die Aufgabe mit Bruteforce in annehmbarer Zeit nicht lösbar sein wird, jedoch hat mich die Implementation eines Bruteforce-Algorithmus trotzdem interessiert.

Ich werde deinen Tipp mit dem Binärstring einmal weiter verfolgen. Ich glaube ich hab da so eine Idee 🙂

Vielen Dank für deine Antwort.
 
Dann ziehe ich meine Unterstellung mal zurueck und danke fuer diesen Link. Solche Raetsel sind immer mal ganz interessant. 🙂
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben