Descripción del desafío
Comencemos con algunas definiciones:
- una relación es un conjunto de pares de elementos ordenados (en este desafío, usaremos enteros)
Por ejemplo, [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
es una relación.
una relación se llama transitiva si para cualquiera de los dos pares de elementos
(a, b)
y(b, c)
en esta relación, un par(a, c)
también está presente,[(1, 2), (2, 4), (6, 5), (1, 4)]
es transitivo, porque contiene(1, 2)
y(2, 4)
, pero(1, 4)
también,[(7, 8), (9, 10), (15, -5)]
es transitivo, porque no hay dos pares(a, b)
,(c, d)
presente tal queb
=c
.[(5, 9), (9, 54), (0, 0)]
no es transitivo, porque contiene(5, 9)
y(9, 54)
, pero no(5, 54)
Dada una lista de pares de enteros, determine si una relación es transitiva o no.
De entrada y salida
Se le dará una lista de pares de enteros en cualquier formato razonable. Considera una relación
[(1, 6), (9, 1), (6, 5), (0, 0)]
Los siguientes formatos son equivalentes:
[(1, 6), (9, 1), (6, 5), (0, 0)] # list of pairs (2-tuples)
[1, 9, 6, 0], [6, 1, 5, 0] # two lists [x1, x2, ..., xn] [y1, y2, ..., yn]
[[1, 6], [9, 1], [6, 5], [0, 0] # two-dimentional int array
[4, 1, 6, 9, 1, 6, 5, 0, 0] # (n, x1, y1, ..., xn, yn)
[1+6i, 9+i, 6+5i, 0+0i] # list of complex numbers
... many others, whatever best suits golfing purposes
Salida: un valor verdadero para una relación transitiva, falsa de lo contrario. Puede suponer que la entrada consistirá en al menos un par, y que los pares son únicos.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Si los pares no estuvieran ordenados, esto no sería transitivo porque (2,3)
falta.
[(7, 8), (9, 10), (15, -5)]
) no ser transitivo?