3

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
Dr. belisarius
  • 115,881
  • 13
  • 203
  • 453
Jorgos
  • 319
  • 2
  • 7

1 Answers1

3
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 *)
kglr
  • 394,356
  • 18
  • 477
  • 896