Java 验证范围
我正在编写一个工具,用户可以为公式的不同值选择不同的选项 例如:F=公式的值Java 验证范围,java,algorithm,Java,Algorithm,我正在编写一个工具,用户可以为公式的不同值选择不同的选项 例如:F=公式的值 if (F>10) option = 1 if (F<5) option = 2 if (F=7) option = 6 if(F>10)选项=1 如果(F 2</代码>和 f<4 < /代码>是可以的,因为我可以认为它是代码>2<f<4</CODE> f<4 < /代码>。没有覆盖范围(可以设置默认选项)是可以的。 是否有任何数据结构来执行此操作或任何算法 提前感谢!实际上非常简单,您只需要有两个变
if (F>10) option = 1
if (F<5) option = 2
if (F=7) option = 6
if(F>10)选项=1
如果(F 2</代码>和<代码> f<4 < /代码>是可以的,因为我可以认为它是代码>2<f<4</CODE><代码> f<4 < /代码>。没有覆盖范围(可以设置默认选项)是可以的。
是否有任何数据结构来执行此操作或任何算法
提前感谢!实际上非常简单,您只需要有两个变量-下限
和上限
,它们在开始时被初始化为-infinity
和无限
当新情况出现时
- 如果是
Fa
,则更新:lowerBound=max{lowerBound,a+1}
- 如果是
F=a
,则更新:lowerBound=max{lowerBound,a},upperBound=min{upperBound,a}
如果在任何点lowerBound>upperBound
-都没有解决方案
我在这里假设了整数,但对于非整数也很容易修改它。因为用户正在传递一个包含表达式的字符串,所以最好执行一些字符串分析以减轻负载。例如,如果用户输入F=6
你知道没有其他东西可以工作,所以你不能允许更多。您可以添加更多的上下文吗?什么是错误条件,什么是可接受的条件?这些条件看起来非常类似于线性优化中的约束。您可以尝试使用单纯形实现来检查可行性。如果用户插入F<5而非F<8,会发生什么?应将其视为错误还是第二个选项uld将被视为5