验证范围

时间:2014-08-28 07:47:56

标签: java algorithm

我正在编写一个工具,用户可以为公式的不同值选择不同的选项。

例如:F =公式值

if (F>10) option = 1

if (F<5) option = 2

if (F=7) option = 6

用户逐个输入这些条件。在他进入一个新的条件之前,我需要知道现有条件是否正常。如果有F < 5F = 8这两个条件,则应将其标识为错误。

F > 2F < 4没问题,我可以将其视为2 < F < 4F < 4。可以使用未覆盖的范围(可以设置默认选项)。

是否有任何数据结构可以执行此操作或任何算法?

提前致谢!

1 个答案:

答案 0 :(得分:3)

实际上非常简单,你只需要有两个变量 - lowerBoundupperBound,它们在开始时被初始化为-infnityinfinity

当新条件到来时,

  • 如果是F<a,请更新:upperBound = min{upperBound, a-1}
  • 如果是F>a,请更新:lowerBound = max{lowerBound , a+1}
  • 如果是F=a,请更新:lowerBound = max{lowerBound , a}, upperBound = min{upperBound, a}

如果在任何时候lowerBound > upperBound - 没有解决方案

我在这里假设了整数,但是对于非整数也很容易修改它。