Z3JavaAPI中的分区
我刚刚发现Z3JavaAPI中名为“mkDiv()”的除法是指整数除法,而不是普通除法。例如:Z3JavaAPI中的分区,java,z3,division,Java,Z3,Division,我刚刚发现Z3JavaAPI中名为“mkDiv()”的除法是指整数除法,而不是普通除法。例如: ArithExpr a = ctx.mkDiv(ctx.mkInt(3),ctx.mkInt(5)).simplify(); a的结果为“0”,但为“3/5” 在中,除法和整数除法似乎分别是两部分: (断言(=r1(第A4分部));整数除法 (断言(>=b(/c 3.0))) Z3JavaAPI中的划分在哪里?mkDiv将根据其参数做正确的事情。因为您要传递整数,所以它将进行整数除法。要使用实数除法
ArithExpr a = ctx.mkDiv(ctx.mkInt(3),ctx.mkInt(5)).simplify();
a的结果为“0”,但为“3/5”
在中,除法和整数除法似乎分别是两部分:
(断言(=r1(第A4分部));整数除法
(断言(>=b(/c 3.0)))
Z3JavaAPI中的划分在哪里?
mkDiv
将根据其参数做正确的事情。因为您要传递整数,所以它将进行整数除法。要使用实数除法,需要将实数值作为参数传递:
导入com.microsoft.z3.*;
甲级{
公共静态void main(字符串[]args){
Context ctx=新上下文();
ArithExpr a=ctx.mkDiv(ctx.mkReal(3),ctx.mkReal(5));
System.out.println(a.simplify());
};
};
这张照片是:
3/5