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

06/07/2020

0

PHP

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

Responder

Posts

11/07/2020

Sérgio Avilla

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;

	}
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar