Logic 相互匹配整数

Logic 相互匹配整数,logic,Logic,我有一个问题。我有两个整数范围,例如100-500和600-800。这是他们的样子: 范围1 start_range = 100 end_range = 500 范围2 start_range_new = 600 end_range_new = 800 我想要一个方法逻辑,在其中我可以匹配两个范围(范围1和范围2),以便这两个范围是完全互斥的,这意味着这两个范围不相交 如果两个范围相交,则将局部变量设为true,如果不相交,则局部变量应为falsea=(0..20) variable = !

我有一个问题。我有两个整数范围,例如100-500和600-800。这是他们的样子:

范围1

start_range = 100
end_range = 500
范围2

start_range_new = 600
end_range_new = 800
我想要一个方法逻辑,在其中我可以匹配两个范围(范围1和范围2),以便这两个范围是完全互斥的,这意味着这两个范围不相交

如果两个范围相交,则将局部变量设为
true
,如果不相交,则局部变量应为
false

a=(0..20)
variable = !((start_range_new > end_range) || (start_range > end_range_new))
b=(15..30) def专用?(x,y) 返回x.first>y.last | | x.last
a=(0..20)
b=(15..30)
def专用?(x,y)
返回x.first>y.last | | x.last
如果使用Rails(或ActiveSupport),可以使用以下方法:

如果您不想使用ActiveSupport,您可以自己将其实现为一个助手函数:

# Compare two ranges and see if they overlap each other
# overlaps?(1..5, 4..6) # => true
# overlaps?(1..5, 7..9) # => false
def overlaps?(one, another)
  one.cover?(other.first) || other.cover?(one.first)
end
如果使用Rails(或ActiveSupport),则可以使用以下方法:

如果您不想使用ActiveSupport,您可以自己将其实现为一个助手函数:

# Compare two ranges and see if they overlap each other
# overlaps?(1..5, 4..6) # => true
# overlaps?(1..5, 7..9) # => false
def overlaps?(one, another)
  one.cover?(other.first) || other.cover?(one.first)
end

start\u range=100,end\u range=500,start\u range\u new=400,end\u range\u new=800,此处400位于范围1,但您的答案给出的变量为false您是对的,它应该返回相反的值:)Edited.start\u range=100,end\u range=500,start\u range\u new=400,end\u range\u new=800,此处400位于范围1,但您的答案给出的变量为false您是对的,它应该返回相反的值:)编辑。为什么这个标记为[c]?您到目前为止尝试了什么,发布您的逻辑here@Michael-那是错误的,为什么这个标签是[c]?你到现在为止试过什么,把你的逻辑贴出来here@Michael-那是错的
# Compare two ranges and see if they overlap each other
# overlaps?(1..5, 4..6) # => true
# overlaps?(1..5, 7..9) # => false
def overlaps?(one, another)
  one.cover?(other.first) || other.cover?(one.first)
end