Meydan okuma açıklaması
Bazı tanımlarla başlayalım:
- bir ilişki sıralı eleman çiftidir (bu meydan okumada tamsayıları kullanacağız)
Örneğin [(1, 2), (5, 1), (-9, 12), (0, 0), (3, 2)]
, bir ilişkidir.
herhangi bir iki çift öğe için bir ilişki geçişli olarak adlandırılır
(a, b)
ve(b, c)
bu ilişkide bir çift(a, c)
de bulunur,[(1, 2), (2, 4), (6, 5), (1, 4)]
geçişlidir, çünkü içerdiği(1, 2)
ve(2, 4)
aynı(1, 4)
zamanda[(7, 8), (9, 10), (15, -5)]
herhangi iki çift değildir çünkü, geçişlidir(a, b)
,(c, d)
mevcut olacağı şekildeb
=c
.[(5, 9), (9, 54), (0, 0)]
geçişli değildir, çünkü içerdiği(5, 9)
ve içermediği(9, 54)
için(5, 54)
Bir tam sayı çifti listesi verildiğinde, bir ilişkinin geçişli olup olmadığını belirleyin.
Giriş çıkış
Herhangi bir makul biçimde tamsayı çiftleri listesi verilecektir. Bir ilişki düşünün
[(1, 6), (9, 1), (6, 5), (0, 0)]
Aşağıdaki biçimler eşdeğerdir:
[(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
Çıktı: geçişli bir ilişki için gerçek bir değer, aksi halde yanlış. Girişin en az bir çift içereceğini ve çiftlerin benzersiz olduğunu varsayabilirsiniz.
(1,3) (2,1) (3,4) (1,4) (2,4)
. Çiftler sipariş edilmemiş olsaydı, bu geçişli olmazdı çünkü (2,3)
eksik.
[(7, 8), (9, 10), (15, -5)]
) geçişli olmamalı mı?