bitstringlistreverser.java

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

JAVA
51
字号
/*
 * BitStringListReverser.java	1.0 05/11/29
 *
 * Copyright 2005 Positronic Software.
 *
 *
 */
 /**
 * Constrains two IBitStringLists to have the same entries in opposite 
 * order. Note: The IBitStringLists must have entries (IBitStrings) of
 * fixed size.
 *
 * @author  Kerry Michael Soileau
 * <blockquote><pre>
 * ksoileau@yahoo.com
 * http://web.wt.net/~ksoileau/index.htm
 * </pre></blockquote>
 * @version 1.0, 05/11/29
 * @see BitStringEqualizer
 * @see Conjunction
 * @see IProblem
 * @see Problem
 */

package positronic.satisfiability.bitstringlist;

import positronic.satisfiability.bitstring.BitStringEqualizer;
import positronic.satisfiability.elements.Conjunction;
import positronic.satisfiability.elements.IProblem;
import positronic.satisfiability.elements.Problem;

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

  public BitStringListReverser(IBitStringList X, IBitStringList Y) throws Exception
  {
    if(X.size()!=Y.size())
      this.setClauses(Problem.unsolvableProblem().getClauses());
    else
    {
      int commonsize=X.size();
      IProblem[] p=new IProblem[commonsize];
      int count=0;
      for(int i=0;i<commonsize;i++)
      	p[count++]=new BitStringEqualizer(X.getBitString(i),Y.getBitString(commonsize-1-i));
        
      this.setClauses(new Conjunction(p).getClauses());
    }
  }
}

⌨️ 快捷键说明

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