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