Fórum Função de intersecção de intervalos, como fazer? #611754

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

Gostei + 0

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

Aceitar