资源简介
解决SAT问题的JAVA代码,判断输入的范式是否存在可满足性。
代码片段和文件信息
import java.lang.*;
import java.util.*;
import java.util.Scanner;
class SAT{
SAT(String[] aString[] k_aint nHEX){
int ijzcont;
char[] k_sat;
char[] a_sat;
char c_kc_a;
for(z =0;z cont =0;//计数归零
a_sat = a[z].toCharArray(); //拆分二进制组合
for (i=0;i k_sat = k_a[i].toCharArray(); //子式中的内容拆分字符
for (j = 0; j < k_sat.length; j++) {
c_k = k_sat[j];
c_a = a_sat[j];
if (c_k==48) { //ASCII码的0
//c_a = a_sat[j];
if(c_a==48){
k_sat[j] = 48;
}
if(c_a==49){
k_sat[j] = 49;
}
}
else if(c_k==49){ //==1取反
if(c_a==48){
k_sat[j] = 49;
}
if(c_a==49){
k_sat[j] = 48;
}
}
else{ //c==2不选
k_sat[j] = 48; //统一置零(因为子式中是或运算用0不影响)
}
}
if(Integer.parseInt(String.valueOf(k_sat))==0){
System.out.println(String.valueOf(a_sat)+“不满足范式“);
break;//存在0,外部与运算肯定是0,接下来就不需要再判断了
}
else{
cont++;//计数
}
//cont++;
评论
共有 条评论