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