Função de intersecção de intervalos, como fazer?

PHP

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á.
Sérgio Avilla

Sérgio Avilla

Curtidas 0

Respostas

Sérgio Avilla

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
POSTAR