Introdução
Para os propósitos deste desafio, definiremos os vizinhos de um elemento em uma matriz quadrada (como ) como todas as entradas de que são imediatamente adjacentes na diagonal, horizontal ou vertical a (ou seja, eles "envolvem" , sem envolver).A E = A i , j A E E
Para pedantes, uma definição formal dos vizinhos de para um matix é (indexada 0): onde n×nA N i ,E i ,
Digamos que o elemento no índice hostil se for coprime para todos os seus vizinhos (ou seja, ). Infelizmente, essa entrada ruim não pode emprestar nem um copo de açúcar de seus rudes residentes nas proximidades ...
Tarefa
Histórias suficientes: dada uma matriz quadrada de números inteiros positivos, produza um dos seguintes:
- Uma lista simples de elementos (deduplicados ou não) indicando todas as entradas que ocupam alguns índices em modo que os vizinhos sejam hostis.
- Uma matriz booleana com s nas posições em que os vizinhos são hostis e caso contrário (você pode escolher outros valores consistentes no lugar de e ).
- A lista de pares de índices que representam bairros hostis.
Implementação de referência no Physica - suporta também a sintaxe do Python para E / S. Você pode obter entrada e fornecer saída através de qualquer método padrão e em qualquer formato razoável, observando que essas brechas são proibidas por padrão. Isso é código-golfe, então o código mais curto em bytes (em todos os idiomas) vence!
Além disso, você pode considerar o tamanho da matriz como entrada e, adicionalmente, a matriz como uma lista simples, pois sempre será quadrada.
Exemplo
Considere a seguinte matriz:
Os vizinhos correspondentes de cada elemento são:
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
E, portanto, a saída deve ser uma das seguintes:
{27; 53}
{{0; 0; 0}; {1; 0; 0}; {1; 0; 0}}
{(1; 0); (2; 0)}
Casos de teste
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)]