Descrizione della sfida
Cominciamo con alcune definizioni:
- una relazione è un insieme di coppie ordinate di elementi (in questa sfida, useremo numeri interi)
Ad esempio, [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
è una relazione.
una relazione è chiamata transitiva se per due coppie di elementi
(a, b)
e(b, c)
in questa relazione(a, c)
è presente anche una coppia ,[(1, 2), (2, 4), (6, 5), (1, 4)]
è transitivo, perché contiene(1, 2)
e(2, 4)
, ma(1, 4)
anche[(7, 8), (9, 10), (15, -5)]
è transitivo, perché non ci sono due coppie(a, b)
,(c, d)
presenti in modo tale cheb
=c
.[(5, 9), (9, 54), (0, 0)]
non è transitivo, perché contiene(5, 9)
e(9, 54)
, ma non(5, 54)
Dato un elenco di coppie di numeri interi, determinare se una relazione è transitiva o meno.
Input Output
Ti verrà dato un elenco di coppie di numeri interi in qualsiasi formato ragionevole. Prendi in considerazione una relazione
[(1, 6), (9, 1), (6, 5), (0, 0)]
I seguenti formati sono equivalenti:
[(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
Output: un valore veritiero per una relazione transitiva, falsa altrimenti. Si può presumere che l'input consisterà in almeno una coppia e che le coppie siano uniche.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Se le coppie non fossero ordinate, questo non sarebbe transitivo perché (2,3)
mancante.
[(7, 8), (9, 10), (15, -5)]
) non dovrebbe essere transitivo?