繁体   English   中英

如何在给定不同条件的情况下划分变量的范围?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM