Estou navegando neste site há um tempo, mas recentemente fiquei realmente interessado em experimentar alguns dos desafios. Eu pretendia tentar alguns dos tópicos existentes sobre golfe com código, mas ontem não tinha acesso à Internet há algum tempo e, nesse meio tempo, pensei em meu próprio desafio.
Sua tarefa é criar um programa ou função que utilize uma matriz de a
números flutuantes e um número inteiro e n
, em seguida, defina cada valor na a
média dos dois ao lado, n
vezes. Quando usado repetidamente com valores crescentes de n
, isso gera um movimento semelhante a uma onda:
Específicos:
- Se houver apenas um item
a
ou sen
for 0 ou menos, o programa retornará a matriz original. - As entradas e saídas podem estar no formato que você desejar, desde que elas estejam visivelmente separadas.
Para cada etapa:
- O primeiro item em
a
deve se tornar a média de si mesmo e o próximo item. - O último item em
a
deve se tornar a média de si mesmo e o item anterior. - Qualquer outro item
a
deve se tornar a média do item anterior e do próximo item. - Certifique-se de calcular a matriz da etapa anterior e não a atual!
Casos de teste: NOTA: Suas entradas / saídas não precisam estar neste formato!
[0, 0, 1, 0, 0], 1 -> [0, 0.5, 0, 0.5, 0]
[0, 0, 1, 0, 0], 2 -> [0.25, 0, 0.5, 0, 0.25]
[0, 0, 1, 0, 0], 0 -> [0, 0, 1, 0, 0]
[0, 0, 1, 0, 0], -39 -> [0, 0, 1, 0, 0]
[0, 16, 32, 16, 0], 1 -> [8, 16, 16, 16, 8]
[0, 1, 2, 3, 4, 5], 1 -> [0.5, 1, 2, 3, 4, 4.5]
[0, 64], 1 -> [32, 32]
[0], 482 -> [0]
[32, 32, 32, 16, 64, 16, 32, 32, 32], 4 -> [33, 27, 40, 22, 44, 22, 40, 27, 33]
Isso é código-golfe , então a resposta mais curta em bytes vence. O vencedor será escolhido em uma semana (em 1º de agosto). Boa sorte!
Edit: Parabéns ao vencedor, @issacg , com incríveis 18 bytes!
n
deve ser de 4, não 5.
n
não fornecidos ea
não fornecidos - eles não acrescentam muito.