2015-04-23 59 views
0

限定分段功能我想限定在Z3py逐段(線性)函數,例如,函數f(x)具有形式如何Z3py

f(x) = a*x + b when 0 <= x <= 1 
f(x) = exp(c*x) when 1 < x <= 2 
f(x) = 1/(1+10^x) when 2 < x <= 3 
etc. 

其中abc是常數。

我想z3.If()函數將是相關的,但隨着件數增長,表達式會變得複雜。

我的問題是,Z3pyprovides if-else語句,還是有一種優雅的方式來定義Z3py中的分段函數?

回答

2

是的,Z3支持if-then-elses,並且在Python中它們可以使用If函數構造。來自If文檔的示例:

>>> x = Int('x') 
>>> y = Int('y') 
>>> max = If(x > y, x, y) 
max = If(x > y, x, y)