bitstringrelation.java
来自「Java版的SAT求解器」· Java 代码 · 共 125 行
JAVA
125 行
package positronic.satisfiability.bitstringrelation;
import positronic.satisfiability.bitstring.BitString;
import positronic.satisfiability.bitstring.IBitString;
import positronic.satisfiability.bitstringlist.BitStringList;
import positronic.satisfiability.bitstringlist.IBitStringList;
import positronic.satisfiability.exceptions.BitStringRelationException;
public class BitStringRelation implements IBitStringRelation
{
private static int bSRCount;
private int bitStringSize;
private IBitStringList[] bsla;
private int dimension=2;
private String name;
private int size=10;
public BitStringRelation(IBitStringRelation bsl) throws Exception
{
this(bsl.getName(),bsl.getDimension(),bsl.getSize(),bsl.getBitStringSize());
for(int i=0;i<bsl.getSize();i++)
for(int j=0;j<bsl.getDimension();j++)
setBitString(i, j, new BitString(bsl.getBitString(i,j)));
}
public BitStringRelation(int dimension,int size,int bitStringSize) throws Exception
{
this("BitStringRelation-"+bSRCount++,dimension,size,bitStringSize);
}
public BitStringRelation(String name,int dimension,int size,int bitStringSize) throws Exception
{
if(name==null || dimension<1 || size<1 || bitStringSize<1)
throw new BitStringRelationException("Improper arguments were passed to constructor.");
this.setName(name);
this.setDimension(dimension);
this.setSize(size);
this.setBitStringSize(bitStringSize);
bsla=new BitStringList[dimension];
for(int i=0;i<dimension;i++)
{
bsla[i]=new BitStringList(size);
for(int j=0;j<size;j++)
bsla[i].add(j,new BitString(bitStringSize));//bsla[i].set(j,new BitString(bitStringSize));
}
}
public IBitString getBitString(int relator, int component) throws Exception
{
return bsla[component].getBitString(relator);
}
public int getBitStringSize()
{
return bitStringSize;
}
public int getDimension()
{
return dimension;
}
public String getName()
{
return name;
}
public int getSize()
{
return size;
}
public void setBitString(int relator, int component, IBitString value)
{
bsla[component].set(relator,value);
}
public void setBitStringSize(int bitStringSize)
{
this.bitStringSize = bitStringSize;
}
public void setDimension(int dimension)
{
this.dimension = dimension;
}
public void setName(String name)
{
this.name=name;
}
public void setSize(int size)
{
this.size = size;
}
public String toString()
{
String ret="\nRelation "+this.getName()+"\n";
int l=ret.length()-2;
for(int i=0;i<l;i++)
ret+="-";
ret+="\n";
for(int i=0;i<this.getSize();i++)
{
ret+=i+":";
for(int j=0;j<this.getDimension();j++)
{
if(j!=0)
ret+=",";
try
{
ret+=getBitString(i,j);
} catch (Exception e)
{
e.printStackTrace();
}
}
ret+="\n";
}
return ret;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?