naturalnumbertablefixer.java

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

JAVA
31
字号
package positronic.satisfiability.naturalnumbertable;

import positronic.satisfiability.elements.Conjunction;
import positronic.satisfiability.elements.IProblem;
import positronic.satisfiability.elements.Problem;
import positronic.satisfiability.exceptions.NaturalNumberTableException;
import positronic.satisfiability.exceptions.NaturalNumberTableFixerException;
import positronic.satisfiability.naturalnumber.NaturalNumberFixer;
import positronic.satisfiability.naturalnumbertable.INaturalNumberTable;

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

	public NaturalNumberTableFixer(INaturalNumberTable A, long[][] data) throws NaturalNumberTableException, Exception
	{
		if(A==null)
			throw new NaturalNumberTableFixerException("Null INaturalNumberTable passed to a constructor.");
		if(data==null)
			throw new NaturalNumberTableFixerException("Null long[][] passed to a constructor.");
		if(data==null || data.length!=A.getRows() || data[0].length!=A.getColumns())
			throw new NaturalNumberTableFixerException("Size mismatch between long[][] and INaturalNumberTable passed to a constructor.");
		IProblem result=null;
		for(int i=0;i<A.getRows();i++)
			for(int j=0;j<A.getColumns();j++)
				result=new Conjunction(result,new NaturalNumberFixer(A.get(i,j),data[i][j]));
			
		this.setClauses(result.getClauses());
	}
}

⌨️ 快捷键说明

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