資源簡介
解決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??????????????????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++;
?????????
評論
共有 條評論