bitstringlistuniquer.java
来自「Java版的SAT求解器」· Java 代码 · 共 46 行
JAVA
46 行
package positronic.satisfiability.bitstringlist;
import positronic.satisfiability.elements.Conjunction;
import positronic.satisfiability.elements.IProblem;
import positronic.satisfiability.elements.Problem;
import positronic.satisfiability.exceptions.BitStringListUniquerException;
public class BitStringListUniquer extends Problem implements IProblem
{
private static final long serialVersionUID = 1L;
public BitStringListUniquer(IBitStringList list1, IBitStringList list2) throws Exception
{
if(list1==null || list2==null)
throw new BitStringListUniquerException("Passed a null IBitStringList to constructor.");
IProblem noDuplication=new BitStringListIsSetter(list2);
IProblem subsetProperty=new BitStringListSubsetter(list1,list2);
IProblem result=new Conjunction(noDuplication,subsetProperty);
this.setClauses(result.getClauses());
}
/*public BitStringListUniquer(IBitStringList list1, IBitStringList list2) throws Exception
{
if(list1==null || list2==null)
throw new BitStringListUniquerException("Passed a null IBitStringList to constructor.");
IProblem sortit=new BitStringListSorter(list1,list2);
if(list2.size()<2 )
this.setClauses(Problem.trivialProblem().getClauses());
else
{
ArrayList collect=new ArrayList();
for(int i=0;i<list2.size()-1;i++)
{
IBitString curr1=list2.getBitString(i);
IBitString curr2=list2.getBitString(i+1);
collect.add(new BitStringUnequalizer(curr1,curr2));
}
this.setClauses(new Conjunction(sortit,new Conjunction(collect)).getClauses());
}
}*/
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?