使用max和min构建if语句

时间:2017-06-23 15:18:55

标签: math logic

那么,

我的第一个问题。

是否可以仅使用“max”和“min”语句构建“If”语句?

我遇到的问题是我需要比较2个数字(A和B)并看看B> 1.1 x A.如果发生这种情况,我会选择B,如果没有,我选择A。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

如果逻辑运算符接受非布尔值,则可以按如下方式执行:

n = Max(B - 1.1*A, 0)
output = Max(B*(n && n), A)

答案 1 :(得分:0)

if语句,无论是纯(顺序不变)逻辑还是程序逻辑,都只能用于布尔语句。这意味着真或假。 min或max函数返回一个数字,而不是true / false值。所以对你的问题的简短回答是否定的,不可能使用max和min返回值构建if语句。

现在,在您的问题的详细信息中,您可以更多地了解您想要的内容。然而,令人困惑的是最大值和最小值如何进入等式。 B> 1.1 * A不需要Max和Min处理,那么你使用Max和Min函数来到B和A吗?如果是这样,那么先简单处理它们,然后将它们插入到那个等式中。

因为"大于"和"小于"比较确实返回真/假值,你很幸运。只需在你的" if"声明。这是一些伪代码。

max1 = 25
max2 = 72
min1 = 95
min2 = 80

A = Max(max1,max2)
B = Min(min1,min2)

O = NULL

if B > 1.1 * A then 
    set O = B
else 
    set O = A
end if

如果if语句的输出是一个值,而不是命令,正如您所希望的那样,某些语言使用" elvis"操作员,使事情更漂亮。使用它,你只需写:

O = B > 1.1 * A ? B : A