How can I create a permutation automatically with logical expressions ? For example (2 logical variables):
Not[a] && Not[b]
Not[a] && b
a && Not[b]
a && b
How can I create a permutation automatically with logical expressions ? For example (2 logical variables):
Not[a] && Not[b]
Not[a] && b
a && Not[b]
a && b
Table[BooleanMinterms[{i}, #], {i, 0, 2^Length[#] - 1}] &[{a, b}]
(* {! a && ! b, ! a && b, a && ! b, a && b} *)
Table[BooleanMinterms[{i}, #], {i, 0, 2^Length[#] - 1}] &[{a, b, c}]
(* {! a && ! b && ! c, ! a && ! b && c, ! a && b && ! c, ! a && b && c,
a && ! b && ! c, a && ! b && c, a && b && ! c, a && b && c} *)
Also
Tuples[And @@ ({#, ! #} & /@ #)] &[{a, b}]
(* same output as above *)
Tuples[And @@ ({#, ! #} & /@ #)] &[{a, b, c}]
(* same output as above *)
Outer[(#1 ∧ #2) &, {a, Not[a]}, {b, Not[b]}]– Sektor Feb 09 '15 at 15:37vars = {a, b, c}; Outer[And, Sequence @@ ({#, Not@#} & /@ vars)] // Flatten– Bob Hanlon Feb 09 '15 at 15:54