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 anúmeros flutuantes e um número inteiro e n, em seguida, defina cada valor na amédia dos dois ao lado, nvezes. Quando usado repetidamente com valores crescentes de n, isso gera um movimento semelhante a uma onda:

Específicos:
- Se houver apenas um item
aou senfor 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
adeve se tornar a média de si mesmo e o próximo item. - O último item em
adeve se tornar a média de si mesmo e o item anterior. - Qualquer outro item
adeve 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!
ndeve ser de 4, não 5.
nnão fornecidos eanão fornecidos - eles não acrescentam muito.