bittable.java

来自「Java版的SAT求解器」· Java 代码 · 共 109 行

JAVA
109
字号
/* * BitTable.java	1.0 05/04/28 * * Copyright 2004-2005 Positronic Software. * * */package positronic.satisfiability.bittable;import java.util.List;import positronic.satisfiability.bitstring.BitString;import positronic.satisfiability.bitstring.IBitString;import positronic.satisfiability.elements.IBooleanLiteral;import positronic.satisfiability.elements.IBooleanVariable;public class BitTable implements IBitTable{  public static void interpret(List V)  {    if(V!=null)      for(int i=0;i<V.size();i++)        ((IBooleanLiteral)(V.get(i))).load();  }  private IBooleanVariable[][] data;  private String name;  public BitTable(IBooleanVariable[][] data)  {    this("",data);  }  public BitTable(String name,IBooleanVariable[][] data)  {    this.setName(name);    this.setData(data);  }  public IBooleanVariable getBooleanVariable(int i, int j)  {    return this.getData()[i][j];  }  public IBooleanVariable[][] getData()  {    return data;  }  public String getName()  {    return name;  }  public boolean isSameSizeAs(IBitTable b)  {    if(this.numberColumns()!=b.numberColumns()) return false;    if(this.numberRows()!=b.numberRows()) return false;    return true;  }  public int numberColumns()  {    return this.getData()[0].length;  }  public int numberRows()  {    return this.getData().length;  }  public void setBooleanVariable(int i, int j, IBooleanVariable ib)  {    this.getData()[i][j]=ib;  }  public void setData(IBooleanVariable[][] data)  {    this.data = data;  }  public void setName(String name)  {    this.name = name;  }  public IBitString[] toBitStringArray() throws Exception  {    IBitString[] res=new IBitString[numberRows()];    for(int i=0;i<res.length;i++)      res[i]=new BitString(this.getName()+"_"+i,this.getData()[i]);    return res;  }  public String toString()  {    String ret="";    for(int row=0;row<numberRows();row++)    {      for(int column=0;column<this.getData()[0].length;column++)        if(this.getBooleanVariable(row,column).getValue())          ret+="T";        else          ret+="F";      ret+="\n";    }    return ret;  }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?