Warum also nicht "Programmieren"?
Hier eine schnelle Loesung in Python.
>>> from pprint import pprint
>>> pprint([
[a,b,c,int(
not(a or b and c)
)]
for a in 0,1
for b in 0,1
for c in 0,1
])
[[0, 0, 0, 1],
[0, 0, 1, 1],
[0, 1, 0, 1],
[0, 1, 1, 0],
[1, 0, 0, 0],
[1, 0, 1, 0],
[1, 1, 0, 0],
[1, 1, 1, 0]]
Erzeugt wird dabei Liste aus Listen deren jeweils letztes Element das Ergebnis der logischen Verknuepfung (hier: /(a + bc)) ist.
Benoetigt man weitere Parameter, wird einfach das Tupel in Zeile 2 der Anweisung erweitert und weitere 'for ... in 0,1' Elemente hinzugefuegt (diese duerfen auch in einer Zeile stehen).
Ist man nur an den Kombinationen von Eingangsparametern interessiert, deren Funktionsergebnis Wahr ist, sieht die Sache noch einfacher aus:
>>> from pprint import pprint
>>> pprint([
[a,b,c]
for a in 0,1
for b in 0,1
for c in 0,1
if not(a or b and c)
])
[[0, 0, 0], [0, 0, 1], [0, 1, 0]]
... oder doch wieder etwas komplizierter:
>>> from pprint import pprint
>>> pprint([L for L in [
[a,b,c,int(
not(a or b and c)
)]
for a in 0,1
for b in 0,1
for c in 0,1
] if L[-1] == 1])
[[0, 0, 0, 1], [0, 0, 1, 1], [0, 1, 0, 1]]
0 comments:
Post a Comment