Description du défi
Commençons par quelques définitions:
- une relation est un ensemble de paires d'éléments ordonnées (dans ce défi, nous utiliserons des entiers)
Par exemple, [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
est une relation.
une relation est appelée transitive si pour deux paires d'éléments quelconques
(a, b)
et(b, c)
dans cette relation, une paire(a, c)
est également présente,[(1, 2), (2, 4), (6, 5), (1, 4)]
est transitif, car il contient(1, 2)
et(2, 4)
, mais(1, 4)
aussi,[(7, 8), (9, 10), (15, -5)]
est transitive, car il n'y a pas deux paires(a, b)
,(c, d)
présente telle queb
=c
.[(5, 9), (9, 54), (0, 0)]
n'est pas transitif, car il contient(5, 9)
et(9, 54)
, mais pas(5, 54)
Étant donné une liste de paires d'entiers, déterminez si une relation est transitive ou non.
Entrée sortie
Vous recevrez une liste de paires d'entiers dans n'importe quel format raisonnable. Considérons une relation
[(1, 6), (9, 1), (6, 5), (0, 0)]
Les formats suivants sont équivalents:
[(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
Sortie: une valeur véridique pour une relation transitive, fausse sinon. Vous pouvez supposer que l'entrée consistera en au moins une paire et que les paires sont uniques.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Si les paires n'étaient pas ordonnées, cela ne serait pas transitif car (2,3)
manquant.
[(7, 8), (9, 10), (15, -5)]
) ne doit-il pas être transitif?