我正在编写一个工具,用户可以为公式的不同值选择不同的选项。
例如:F =公式值
if (F>10) option = 1
if (F<5) option = 2
if (F=7) option = 6
用户逐个输入这些条件。在他进入一个新的条件之前,我需要知道现有条件是否正常。如果有F < 5
和F = 8
这两个条件,则应将其标识为错误。
F > 2
和F < 4
没问题,我可以将其视为2 < F < 4
和F < 4
。可以使用未覆盖的范围(可以设置默认选项)。
是否有任何数据结构可以执行此操作或任何算法?
提前致谢!
答案 0 :(得分:3)
实际上非常简单,你只需要有两个变量 - lowerBound
和upperBound
,它们在开始时被初始化为-infnity
和infinity
当新条件到来时,
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
- 没有解决方案
我在这里假设了整数,但是对于非整数也很容易修改它。