Você recebe uma matriz n por m de números inteiros, onde n, m> 3 . Sua tarefa é encontrar a sub-matriz 3 por 3 que tem a menor média e gerar esse valor.
Regras e esclarecimentos:
- Os números inteiros não serão negativos
- Formato opcional de entrada e saída
- A saída deve ser precisa até pelo menos 2 pontos decimais (se não for um número inteiro)
- As submatrizes podem ser compostas de colunas e linhas arbitrárias
Casos de teste:
1 0 4 0 1 0
1 0 4 0 1 0
4 3 4 3 4 3
1 0 4 0 1 0
Minimum mean: 0 (We have chosen columns 2,4,6 and rows 1,2,4 (1-indexed)
-----------------------------
4 8 9 7
5 10 1 5
8 5 2 4
8 3 5 10
6 6 3 4
Minimum mean: 4.2222
-----------------------------
1 0 0 0 0
0 2 0 0 0
0 0 3 0 0
0 0 0 4 0
0 0 0 0 5
Minimum mean: 0.11111
-----------------------------
371 565 361 625 879 504 113 104
943 544 157 799 726 832 228 405
743 114 171 506 943 181 823 454
503 410 333 735 554 227 423 662
629 439 191 707 52 751 506 924
Minimum mean: 309.56
Respostas:
Mathematica,
7750 bytes
é o operador de transposição do Mathematica (e é renderizado como um T sobrescrito no Mathematica).Essa resposta primeiro define um operador auxiliar
±
que retorna todos os subconjuntos de 3 elementos de uma lista e depois avalia uma função sem nome que usa esse operador para resolver o problema.Isso é feito computando primeiro todos os subconjuntos de 3 elementos das linhas da matriz. Então, para cada um desses subconjuntos, nós os transpomos e calculamos seu subconjunto de três elementos. Isso nos fornece todas as submatrizes 3x3 possíveis (embora elas sejam transpostas). Em seguida, calculamos a média em todas elas e encontramos o mínimo geral.
fonte
Geléia ,
1512 bytesExperimente online!
Como funciona
fonte
œc3S€µ⁺€FṂ÷9
é o que eu consegui ... EDIT - hah e, assim, você faz o mesmo: D9
dividindo-o3
dentro da cadeia repetida, mas é possível obter3
o argumento certo para que seja possível no 11?⁺
), quanto dentro da cadeia, você precisará especificar3
explicitamente ou agrupá-lo÷
.05AB1E ,
2116 bytesExperimente online!
Explicação
fonte
Haskell , 90 bytes
Experimente online!
fonte
concatMap t
pode ser reduzido para(>>=t)
Bean , 198 bytes
Hexdump:
JavaScript equivalente:
Experimente a demonstração aqui
fonte