对于给定的程序,现在我想确定对应于不同路径的有效输入范围。
举个例子:
def test(a):
if (a < 50):
return 1
else:
return -1
所以对于这个程序,有两条路径。一条路径返回1,另一条路径返回-1。假设有一个给定的函数(您也可以设计自己的函数),它可以返回一个路径条件列表:
conditions = get_path_conditions(test)
以便条件包含2个字符串元素["a<50", "a>=50"]
假设输入a = "(-100,100)"
的范围(为方便起见,我使用字符串来表示下限和上限,就像我们在数学中一样。如果你愿意,也可以使用其他表示。)
那么如何设计一个能够将不同条件映射到不同输入范围的函数呢?
conditions = ["a<50", "a>=50"]
a = "(-100,100)"
input_ranges = get_inputs(conditions,a)
因此input_ranges
有2个元素:["(-100,50)","[50,100)"]
类似的问题:
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3658
答案 0 :(得分:0)
如果条件是布尔值,则可以使用(lambda)函数。使用您的示例:
conditions = [lambda x:x<50, lambda x:x=>50]
或者您可以使用def
定义函数,并在条件列表中按名称引用它们。