naturalnumber.java

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

JAVA
105
字号
 /* * NaturalNumber.java	1.0 05/05/04 * * Copyright 2004-2005 Positronic Software. * * */ /** * A BitString representing the binary form of a natural number (i.e., a * positive integer). * * @author  Kerry Michael Soileau * <blockquote><pre> * ksoileau@yahoo.com * http://web.wt.net/~ksoileau/index.htm * </pre></blockquote> * @version 1.0, 05/05/04 * @see BitString * @see BitStringException * @see INaturalNumber * @see positronic.util.Number */package positronic.satisfiability.naturalnumber;import positronic.satisfiability.bitstring.BitString;import positronic.satisfiability.bitstring.IBitString;import positronic.satisfiability.elements.IBooleanVariable;public class NaturalNumber extends BitString implements INaturalNumber{  private static int nNCount;  public NaturalNumber() throws Exception  {    this("NaturalNumber-"+ nNCount++);  }  public NaturalNumber(String name) throws Exception  {    super(name,new boolean[INaturalNumber.LENGTH]);  }  public NaturalNumber(IBitString data) throws Exception  {    this("NaturalNumber-"+ nNCount++,data);  }  public NaturalNumber(String name,IBitString data) throws Exception  {    super(name,data.getBVArray(INaturalNumber.LENGTH));  }  private NaturalNumber(String name, boolean[] data) throws Exception  {    this(name,new BitString(name,data));  }  public NaturalNumber(String name, long n) throws Exception  {    this(name,new positronic.math.Number(new positronic.math.Number(n),      INaturalNumber.LENGTH).getBitArray());  }  public NaturalNumber(long n) throws Exception  {    this("NaturalNumber-"+ nNCount++,n);  }  public IBooleanVariable[] toBVArray() throws Exception  {    return super.getBVArray();  }  public String toString()  {    long total=0L;    for(int i=INaturalNumber.LENGTH-1;i>=0;i--)    {      IBooleanVariable ib = null;			try			{				ib = this.getBooleanVariable(i);			} catch (Exception e)			{				e.printStackTrace();			}      if(ib.getValue())        total=2*total+1;      else      	total=2*total;    }    return ""+total;  }  public boolean equals(Object o)  {  	if(o==null)  		return false; //this is never equal to null.    if(!(o instanceof NaturalNumber))      return false;    else      return (this.getName().compareTo(((NaturalNumber)o).getName()))==0;  }}

⌨️ 快捷键说明

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