• 大小: 3KB
    文件类型: .java
    金币: 1
    下载: 0 次
    发布日期: 2021-05-28
  • 语言: Java
  • 标签: SAT  JAVA解决  

资源简介

解决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++;
         

评论

共有 条评论