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 + -
显示快捷键?