Herausforderungsbeschreibung
Beginnen wir mit einigen Definitionen:
- Eine Relation ist eine Menge geordneter Elementpaare (in dieser Herausforderung werden Ganzzahlen verwendet).
Zum Beispiel [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
ist eine Beziehung.
eine Beziehung heißt transitive wenn für irgendwelche zwei Paare von Elementen
(a, b)
und(b, c)
in dieser Beziehung ein Paar(a, c)
ebenfalls vorhanden ist,[(1, 2), (2, 4), (6, 5), (1, 4)]
ist transitiv, weil es enthält(1, 2)
und(2, 4)
, aber(1, 4)
auch,[(7, 8), (9, 10), (15, -5)]
ist transitiv, weil es keine zwei Paare gibt(a, b)
, die so(c, d)
vorhanden sind, dassb
=c
.[(5, 9), (9, 54), (0, 0)]
ist nicht transitiv, weil es(5, 9)
und enthält(9, 54)
, aber nicht(5, 54)
Bestimmen Sie anhand einer Liste von Ganzzahlpaaren, ob eine Beziehung transitiv ist oder nicht.
Input-Output
Sie erhalten eine Liste mit Paaren von ganzen Zahlen in einem angemessenen Format. Betrachten Sie eine Beziehung
[(1, 6), (9, 1), (6, 5), (0, 0)]
Die folgenden Formate sind äquivalent:
[(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
Ausgabe: ein wahrer Wert für eine transitiven Beziehung, sonst falsch. Sie können davon ausgehen, dass die Eingabe aus mindestens einem Paar besteht und dass die Paare eindeutig sind.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Wenn die Paare nicht bestellt würden, wäre dies nicht transitiv, weil (2,3)
es fehlt.
[(7, 8), (9, 10), (15, -5)]
) nicht transitiv sein?