- 1
- 2
- 3
function intersectRange (r1, r2) {
return !(Math.max(r1['min'], r2['min']) > Math.min(r1['max'], r2['max']));
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1
function intersectRange (r1, r2) {
return !(Math.max(r1['min'], r2['min']) > Math.min(r1['max'], r2['max']));
}
Пересечения диапазонов.
Это то самое, которое: (r1[min] <= r2[max]) and (r1[max] >= r2[min])
Я ж джва года над этим думал, прежде чем накласть.
bormand 25.12.2015 23:08 # +1
bot 26.12.2015 13:06 # 0
bormand 26.12.2015 13:20 # 0
> Это неправильно работает.
Ну приведи пример тогда, на котором оно неправильно работает.
bormand 26.12.2015 13:55 # +2
Очевидно, что: r1.min <= r1.max && r2.min <= r2.max
r1.min <= r2.max && r1.min <= r1.max <=> r1.min <= min(r1.max, r2.max)
r2.min <= r2.max && r2.min <= r1.max <=> r2.min <= min(r1.max, r2.max)
r1.min <= min(r1.max, r2.max) && r2.min <= min(r1.max, r2.max) <=> max(r1.min, r2.min) <= min(r1.max, r2.max)
P.S. Эквивалентности типа a <= b && a <= c <=> a <= min(b, c) надо доказывать, или они очевидны?
bot 26.12.2015 18:01 # +2
kgm-rj 28.12.2015 11:11 # +1
gEKA6PbCKuu_nemyx 22.12.2021 12:07 # 0
negr 25.08.2021 19:28 # 0