与えた条件を満たす候補
Posted feedbacks - JavaScript
身も蓋も無し。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | function doukaku43(){
var exp = "", result = [], x = 0, X, i, j, l;
for(i = 0, l = arguments.length; i < l; i++) switch(arguments[i]){
case "and": exp = "("+ exp + "X["+ x++ +"]) && "; break;
case "or" : exp = "("+ exp + "X["+ x++ +"]) || "; break;
case "not": exp += "!"; break;
}
exp += "X["+ x++ +"]";
for(i = 0, l = 1 << x; i < l; i++){
for(j = x, X = []; j--;) X.push(!!(i >> j & 1));
if(eval(exp)) result.push(X);
}
return result;
}
(function(){
for(var r, s = "", i = 0, j; i < arguments.length; i++){
r = doukaku43.apply(this, arguments[i]);
s += arguments[i].join(" ") +" :\n";
for(j = 0; j < r.length; j++) s += " "+ r[j] + "\n";
}
this.WSH ? WSH.echo(s) : alert(s);
})(['and', 'or', 'not', 'and'], ['not', 'or', 'and'], ['not', 'not']);
|

にしお
#3399()
Rating0/0=0.00
元ネタの 充足可能性問題 - Wikipedia は、 同じリテラル(x1とかnot x2とか)が複数回出てくることを想定しているので、 今回の問題のようにそれぞれ別の変数でだと乗法標準形 - Wikipediaにした場合に、答えが…と色々悩みどころでした。
[ reply ]