bitstringlistdisjointer.java

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

JAVA
38
字号
/*
 * BitStringListDisjointer.java	1.0 05/12/09
 *
 * Copyright 2005 Positronic Software.
 *
 *
 */

package positronic.satisfiability.bitstringlist;

import positronic.satisfiability.elements.*;
import positronic.satisfiability.exceptions.*;

public class BitStringListDisjointer extends Problem implements IProblem
{
  private static final long serialVersionUID = 1L;

  //Ensures that every IBitString in A is also in B
  public BitStringListDisjointer(IBitStringList A, IBitStringList B) throws Exception
  {
    if(A==null)
      throw new BitStringListDisjointerException("Passed a null IBitStringList to constructor.");
    if(B==null)
      throw new BitStringListDisjointerException("Passed a null IBitStringList to constructor.");
    if(A.size()==0 || B.size()==0)
    	this.setClauses(Problem.trivialProblem().getClauses());
    else
    {
	    IProblem res[]=new IProblem[A.size()+B.size()];
	    for(int i=0;i<A.size();i++)
	      res[i]=new BitStringListNonmembershipper(A.getBitString(i),B);
	    this.setClauses(new Conjunction(res).getClauses());
	    for(int i=0;i<B.size();i++)
	      res[i]=new BitStringListNonmembershipper(B.getBitString(i),A);
	    this.setClauses(new Conjunction(res).getClauses());
    }
  }
}

⌨️ 快捷键说明

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