Giriş
Bu zorluğun amaçları doğrultusunda, bir elemanının komşularını bir kare matris ( ) hemen çapraz, yatay veya dikey olarak bitişik olan tüm girişleri olarak tanımlayacağız. (yani , etrafını sarmadan " kuşatırlar).A E = A i , j A E
Pedallar için, matix için nin komşularının resmi bir tanımı (0 dizinli): n×nA N i ,E i ,
Diyelim ki endeksinde eleman olduğunu o aralarında asal istiyorsa düşmanlık hayatlarını tüm (komşuları olduğunu, ). Ne yazık ki, bu kötü giriş yakındaki sakinlerinden bir bardak şeker bile ödünç alamaz ...
Görev
Yeterli hikaye: Pozitif tamsayıların kare matrisi M verildiğinde , aşağıdakilerden birini çıkarın:
- Bazı endeksleri kalan tüm girişleri gösteren elemanların bir düz listesi (yinelemesi ya da değil) içinde komşu olacak şekilde düşman.
- Komşuların düşman olduğu ve 0 olduğu durumlarda s'lik bir boole matrisi (aksi takdirde 0 ve 1 yerine başka tutarlı değerler seçebilirsiniz ).
- Düşman mahalleleri temsil eden i, \: j indeks çiftlerinin listesi .
Physica'da Referans Uygulaması - I / O için de Python sözdizimini destekler . Bu boşlukların varsayılan olarak yasak olduğunu dikkate alırken, herhangi bir standart yöntemle ve makul bir formatta girdi alabilir ve çıktı sağlayabilirsiniz . Bu kod golf, bu yüzden bayt (her dilde) en kısa kod kazanır!
Ayrıca, matris boyutunu giriş olarak da alabilir ve ayrıca her zaman kare olacağından matrisi düz bir liste olarak alabilirsiniz.
Misal
Aşağıdaki matrisi düşünün:
Her bir öğenin karşılık gelen komşuları:
i j – E -> Neighbours | All coprime to E?
|
0 0 – 64 -> {10; 27; 22} | False
0 1 – 10 -> {64; 14; 27; 22; 32} | False
0 2 – 14 -> {10; 22; 32} | False
1 0 – 27 -> {64; 10; 22; 53; 58} | True
1 1 – 22 -> {64; 10; 14; 27; 32; 53; 58; 36} | False
1 2 – 32 -> {10; 14; 22; 58; 36} | False
2 0 – 53 -> {27; 22; 58} | True
2 1 – 58 -> {27; 22; 32; 53; 36} | False
2 2 – 36 -> {22; 32; 58} | False
Ve böylece çıktı aşağıdakilerden biri olmalıdır:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
Test senaryoları
Input –> Version 1 | Version 2 | Version 3
[[36, 94], [24, 69]] ->
[]
[[0, 0], [0, 0]]
[]
[[38, 77, 11], [17, 51, 32], [66, 78, 19]] –>
[38, 19]
[[1, 0, 0], [0, 0, 0], [0, 0, 1]]
[(0, 0), (2, 2)]
[[64, 10, 14], [27, 22, 32], [53, 58, 36]] ->
[27, 53]
[[0, 0, 0], [1, 0, 0], [1, 0, 0]]
[(1, 0), (2, 0)]
[[9, 9, 9], [9, 3, 9], [9, 9, 9]] ->
[]
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]
[]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]] ->
[1, 1, 1, 1, 1, 1, 1, 1, 1] or [1]
[[1, 1, 1], [1, 1, 1], [1, 1, 1]]
[(0, 0), (0, 1), (0, 2), (1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
[[35, 85, 30, 71], [10, 54, 55, 73], [80, 78, 47, 2], [33, 68, 62, 29]] ->
[71, 73, 47, 29]
[[0, 0, 0, 1], [0, 0, 0, 1], [0, 0, 1, 0], [0, 0, 0, 1]]
[(0, 3), (1, 3), (2, 2), (3, 3)]