如果我发出:
(set-option :pp-decimal true)
(set-option :pp-decimal-precision 10)
Z3是否在实数的第10位后进行任何舍入?或者它只是删除剩余的数字而没有任何舍入?
答案 0 :(得分:1)
在Z3 4.0中,使用单变量多项式alpha
和两个二元有理数p
和lower
表示代数数upper
。二元有理数是a/2^k
形式的有理数,其中a
是整数,k
是自然数。我们alpha
是区间p
中(lower, upper)
的唯一根。选项时
(set-option:pp-decimal true)
(set-option:pp-decimal-precision N)
提供。首先,我将间隔(lower, upper)
挤压/细化到upper - lower < 1/10^N
。然后,我查看上限(这是一个二元有理数)并通过在第N个数字后斩波以十进制显示它。更确切地说,细化实际执行到upper - lower < 1/16^N
。
我意识到这不是一个理想的解决方案,但对于大多数用途来说它已经足够了。