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?