我想找出三个数字的第二个最小值。
我有一个黑盒,它获取两个输入数字,黑盒返回数字之间的最大值。
另外,我有一个黑盒,它返回最小值。
现在我有一个框,它有3个数字作为输入,它需要返回第二个min。
你能帮我解决这个问题吗?只用两个黑盒怎么解决这个问题?
谢谢!
发布于 2016-09-23 02:11:29
我可以通过3次使用黑盒来解决这个问题。让我们假设每个元素都是a,b,c。找到a和b的最小值,b和c的最小值。然后你找到这两个答案中的最大值,你就得到了第二个最小值。如果只返回b,则找到a和c的最小值。
发布于 2016-09-23 07:31:26
Inputs: a, b, c
Level 1 (filtering out the biggest value):
min(a,b) -> min_ab
min(a,c) -> min_ac
min(b,c) -> min_bc
Level 2 (selecting the highest remaining value, step 1):
max(min_ab, min_bc) -> m*
Level 3 (step 2):
max(m*, min_ac) -> solution
Gives a total of 5 boxes.
a --+--\
| min --\
b -----< max --\
| min --/ max --
c -----< /
| min --------/
\--/
Alternatively you can do 3 maxes first and then 2 mins.https://stackoverflow.com/questions/39645701
复制相似问题