Função de intersecção de intervalos, como fazer?
Olá, eu gostaria de saber se alguem tem alguma ideia de como eu posso fazer uma função que me diga de dois intervalos então se interseccionando. Os argumentos são: inicio de A e fim de A, inicio de B e fim de B. Exemplo: (2, 5, 3, 4) retorna TRUE, (1,2,3,4) retorna FALSE. Pode ser em qualquer linguagem, mas eu to usando PHP. Muito obrigado desde já.
Sérgio Avilla
Curtidas 0
Respostas
Sérgio Avilla
06/07/2020
Olá, eu gostaria de saber se alguem tem alguma ideia de como eu posso fazer uma função que me diga de dois intervalos então se interseccionando. Os argumentos são: inicio de A e fim de A, inicio de B e fim de B. Exemplo: (2, 5, 3, 4) retorna TRUE, (1,2,3,4) retorna FALSE. Pode ser em qualquer linguagem, mas eu to usando PHP. Muito obrigado desde já.
Eu fiz assim:
function intersec($ini_a, $end_a, $ini_b, $end_b) { if ($ini_a == $ini_b or $end_b == $end_a or $ini_a == $end_b or $ini_b == $end_a) { return true; } $ini_a = intval($ini_a); $ini_b = intval($ini_b); $end_a = intval($end_a); $end_b = intval($end_b); $arr = [$ini_a, $end_a, $ini_b, $end_b]; arsort($arr); return (array_keys($arr)[0]-array_keys($arr)[1]) > 1; }
GOSTEI 0