bitstringlistunioner.java
来自「Java版的SAT求解器」· Java 代码 · 共 82 行
JAVA
82 行
/* * BitStringListAnder.java 1.0 05/04/15 * * Copyright 2004-2005 Positronic Software. * * */package positronic.satisfiability.bitstringlist;import positronic.satisfiability.bitstring.IBitString;import positronic.satisfiability.elements.Conjunction;import positronic.satisfiability.elements.Disjunction;import positronic.satisfiability.elements.IProblem;import positronic.satisfiability.elements.Problem;import positronic.satisfiability.exceptions.BitStringListException;public class BitStringListUnioner extends Problem implements IProblem{ private static final long serialVersionUID = 1L; public BitStringListUnioner(IBitStringList T,IBitStringList A,IBitStringList B) throws Exception { if(T==null || A==null || B==null) throw new BitStringListException("Passed null IBitStringList to BitStringListAnder constructor."); IProblem problem=null; for(int i=0;i<A.size();i++) { IProblem inT=new BitStringListMembershipper(A.getBitString(i),T); problem=new Conjunction(problem,inT); } for(int i=0;i<B.size();i++) { IProblem inT=new BitStringListMembershipper(B.getBitString(i),T); problem=new Conjunction(problem,inT); } for(int i=0;i<T.size();i++) { IBitString curr=T.getBitString(i); IProblem inA=new BitStringListMembershipper(curr,A); IProblem inB=new BitStringListMembershipper(curr,B); problem=new Conjunction(problem,new Disjunction(inA,inB)); } this.setClauses(problem.getClauses()); } /*public BitStringListUnioner(IBitStringList T,IBitStringList A,IBitStringList B) throws Exception { if(T==null || A==null || B==null) throw new BitStringListException("Passed null IBitStringList to BitStringListAnder constructor."); IProblem problem=null; for(int i=0;i<A.size();i++) { IBitString curr=A.getBitString(i); IProblem notInT=new BitStringListNonmembershipper(curr,T); IProblem inA=new BitStringListMembershipper(curr,A); IProblem inB=new BitStringListMembershipper(curr,B); IProblem notInA=new BitStringListNonmembershipper(curr,A); IProblem notInB=new BitStringListNonmembershipper(curr,B); IProblem inT=new BitStringListMembershipper(curr,T); problem=new Conjunction(problem, new Disjunction(notInT,inA,inB), new Disjunction(new Conjunction(notInA,notInB),inT)); } for(int i=0;i<B.size();i++) { IBitString curr=B.getBitString(i); IProblem p1=new BitStringListNonmembershipper(curr,T); IProblem p2=new BitStringListMembershipper(curr,A); IProblem p3=new BitStringListMembershipper(curr,B); IProblem p4=new BitStringListNonmembershipper(curr,A); IProblem p5=new BitStringListNonmembershipper(curr,B); IProblem p6=new BitStringListMembershipper(curr,T); problem=new Conjunction(problem, new Disjunction(p1,p2,p3), new Disjunction(new Conjunction(p4,p5),p6)); } this.setClauses(problem.getClauses()); }*/}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?