@@ -21,10 +21,25 @@ namespace SolveAvdoshin
2121//
2222// PrintDerivatives(new BooleanFunction(26));
2323
24− foreach(var t in BooleanExpression.AllTrees(3)) {
25− t.SetIthVar(0, BooleanVariable.B);
26− t.setIthOp(0, BooleanOperation.Xor);
27− Console.WriteLine(t.ToString());
24+// foreach(var t in BooleanExpression.AllTrees(3)) {
25+// t.SetIthVar(0, BooleanVariable.B);
26+// t.setIthOp(0, BooleanOperation.Xor);
27+// Console.WriteLine(t.ToString());
28+// }
29+
30+// foreach(var v in Combinatorics.AllNTuples(new BooleanOperation[] { BooleanOperation.And,
31+// BooleanOperation.Or }, 3)) {
32+// foreach(var b in v) {
33+// Console.Write("{0} ", b);
34+// }
35+// Console.WriteLine();
36+// }
37+
38+ BooleanOperation[] ops = { BooleanOperation.And, BooleanOperation.Or };
39+ BooleanVariable[] vars = { BooleanVariable.A, BooleanVariable.B, BooleanVariable.C };
40+
41+ foreach(var v in BooleanExpression.AllExpressions(3, ops, vars)) {
42+ Console.WriteLine(v.ToString());
2843 }
2944 }
3045 }
@@ -128,6 +143,17 @@ namespace SolveAvdoshin
128143
129144 return ex;
130145 }
146+
147+ public BooleanExpression MininalExpressionInBasis()
148+ {
149+ throw new NotImplementedException();
150+
151+// for(int i = 2; i < 15; i++) {
152+// foreach(var ex in BooleanExpression.AllExpressions(i)) {
153+//
154+// }
155+// }
156+ }
131157 }
132158
133159 enum BooleanOperation { Zero, NOR, NotBImp, NotA, NotImp, NotB, Xor, NAND, And, Eq, B, Imp, A, BImp, Or, One };
@@ -160,12 +186,21 @@ namespace SolveAvdoshin
160186 public static IEnumerable<BooleanExpression> AllExpressions(int size, BooleanOperation[] ops,
161187 BooleanVariable[] vars)
162188 {
163− throw new NotImplementedException();
164− }
189+ foreach(var ex in AllTrees(size)) {
190+ foreach(var opList in Combinatorics.AllNTuples(ops, size)) {
191+ foreach(var varList in Combinatorics.AllNTuples(vars, size + 1)) {
192+ for(int i = 0; i < size; i++) {
193+ ex.setIthOp(i, opList[i]);
194+ }
165195
166− public BooleanExpression FindMininalInBasis()
167− {
168− throw new NotImplementedException();
196+ for(int i = 0; i < size + 1; i++) {
197+ ex.SetIthVar(i, varList[i]);
198+ }
199+
200+ yield return ex;
201+ }
202+ }
203+ }
169204 }
170205 }
171206