[英]how to partition the range of a variable given different conditions?
对于给定的程序,现在我要确定对应于不同路径的有效输入范围。
例如:
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
如果条件是布尔值,则可以使用(lambda)函数。 使用您的示例:
conditions = [lambda x:x<50, lambda x:x=>50]
或者,您可以使用def
定义函数,并在条件列表中按名称引用它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.