我必须检查给定范围是否可以为表达式a-b = c生成随机数。
例如 范围是1到9 b范围是1到9和 c范围是10到99
然后在那种情况下我必须返回false。
我的登录信息是
if (((a.Min - b.Min) <= c.Max) && ((a.Max - b.Min) >= c.Min))
return true;
else
return false;
但是这种情况在少数情况下失败了。
任何人都可以帮助我。
答案 0 :(得分:0)
我认为正确的条件应该是:
a.Max - b.Min <= c.Max
a.Min - b.Max >= c.Min
用你的例子:a = [101,999],b = [1,9]
你可以得到的最小数字是:a.Min - b.Max = 101 - 9 = 92
最大数量为:999 - 1 = 998
所以你的逻辑在c = [92,998]或任何min> gt;时返回true 92,最大&lt; 998,像[100,500]