Seite 1 von 1

Problem mit Algorithmus

Verfasst: Freitag 8. Juli 2011, 15:41
von odium
Hallo,

ich stehe gerade leider total auf dem Schlauch, vielleicht liegt es an der Hitze oder ich sehe den Wald vor lauter Bäumen nicht. Es wäre super, wenn mir jemand helfen könnte.
Ich habe eine Liste "a" mit n Werten. Aus dieser Liste "a" möchte ich eine Liste "b" erzeugen in der jede mögliche Kombination von den den Werten aus Liste "a" sein soll, wobei jeder Wert entweder an (1) oder aus (0) sein kann. Also sollte Liste "b" dann 2^n Einträge haben.
also bei n=3 in Liste "a"
Liste "b":
111
110
100
000
001
011
101
010
Kann mir jemand einen Tipp geben, ich bin mir recht sicher, dass es nicht schwer ist, aber irgendwie will es gerade nicht.

Vielen Dank,
Christoph

Re: Problem mit Algorithmus

Verfasst: Freitag 8. Juli 2011, 15:45
von EyDu
Hallo und willkommen im Forum!

Die Funktion `product` im `itertools`-Modul liefert das von dir gewünschte Ergebnis. Wenn du den entsprechenden Algorithmus selber umsetzen möchtest, dann poste am besten deinen bisher dazu vorhandenen Code. Daran kann man dir am besten helfen.

Sebastian

Re: Problem mit Algorithmus

Verfasst: Freitag 8. Juli 2011, 15:50
von CM
Ich werfe noch itertools.permutations in den Raum ;-). "Permutation" ist auch ein schönes Stichwort zum selbersuchen und -verstehen.

Re: Problem mit Algorithmus

Verfasst: Freitag 8. Juli 2011, 16:09
von odium
Ich glaube das ist genau das, was ich gesucht habe!
Vielen Dank!

Re: Problem mit Algorithmus

Verfasst: Samstag 9. Juli 2011, 12:07
von DaMutz
wenn du immer alle Zahlen von 0 bis (2**n)-1 in binärer Form haben willst so kannst du auch folgendes machen:

Code: Alles auswählen

for i in xrange(2**n):
    "{:0>3s}".format(bin(i)[2:])
Den String abhängig von n mit 0s auffüllen kannst du noch selber machen :twisted: