Opis wyzwania
Zacznijmy od kilku definicji:
- relacja jest zbiorem uporządkowanych par elementów (w tym wyzwaniem, będziemy używać liczb całkowitych)
Na przykład [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
jest relacją.
relacja jest nazywana przechodnią, jeśli dla dowolnych dwóch par elementów
(a, b)
iw(b, c)
tej relacji(a, c)
występuje również para ,[(1, 2), (2, 4), (6, 5), (1, 4)]
jest przechodnie, ponieważ zawiera(1, 2)
i(2, 4)
, ale(1, 4)
także[(7, 8), (9, 10), (15, -5)]
jest przechodnie, ponieważ nie ma żadnych dwóch par(a, b)
,(c, d)
obecnych tak, żeb
=c
.[(5, 9), (9, 54), (0, 0)]
nie jest przechodnie, ponieważ zawiera(5, 9)
i(9, 54)
, ale nie zawiera(5, 54)
Biorąc pod uwagę listę par liczb całkowitych, określ, czy relacja jest przechodnia, czy nie.
Wejście wyjście
Otrzymasz listę par liczb całkowitych w dowolnym rozsądnym formacie. Rozważ relację
[(1, 6), (9, 1), (6, 5), (0, 0)]
Następujące formaty są równoważne:
[(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
Wyjście: prawdziwa wartość dla relacji przechodniej, w przeciwnym razie fałsz. Możesz założyć, że dane wejściowe będą się składać z co najmniej jednej pary i że pary są unikalne.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Jeśli pary nie zostaną zamówione, nie będzie to przechodnie, ponieważ (2,3)
brakuje.
[(7, 8), (9, 10), (15, -5)]
) nie powinien być przechodni?