Описание задачи
Давайте начнем с некоторых определений:
- отношение есть множество упорядоченных пар элементов (в этой проблеме, мы будем использовать целые числа)
Например, [(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)]) не быть транзитивным?