Описание задачи
Давайте начнем с некоторых определений:
- отношение есть множество упорядоченных пар элементов (в этой проблеме, мы будем использовать целые числа)
Например, [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
это отношение.
отношение называется транзитивным, если для любых двух пар элементов
(a, b)
и(b, c)
в этом отношении(a, c)
также присутствует пара ,[(1, 2), (2, 4), (6, 5), (1, 4)]
является переходным, потому что он содержит(1, 2)
и(2, 4)
, но(1, 4)
также,[(7, 8), (9, 10), (15, -5)]
является транзитивным, потому что нет двух пар(a, b)
,(c, d)
представленных так, чтоb
=c
.[(5, 9), (9, 54), (0, 0)]
не является переходным, потому что он содержит(5, 9)
и(9, 54)
, но не(5, 54)
Учитывая список пар целых чисел, определите, является ли отношение транзитивным или нет.
Ввод, вывод
Вам будет предоставлен список пар целых чисел в любом разумном формате. Рассмотрим отношение
[(1, 6), (9, 1), (6, 5), (0, 0)]
Следующие форматы эквивалентны:
[(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
Вывод: истинное значение для транзитивного отношения, иначе ложь. Вы можете предположить, что вход будет состоять как минимум из одной пары, и что пары будут уникальными.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Если бы пары не были заказаны, это не было бы транзитивно, потому что (2,3)
отсутствует.
[(7, 8), (9, 10), (15, -5)]
) не быть транзитивным?