J'ai parcouru ce site pendant un certain temps, mais récemment je me suis vraiment intéressé à essayer certains des défis. J'avais l'intention de m'essayer à certains des sujets de golf de code existants, mais je n'ai pas eu accès à Internet depuis un moment hier, et en attendant, j'ai pensé à mon propre défi.
Votre tâche consiste à créer un programme ou une fonction qui prend un tableau de flottants a
et un entier n
, puis définit chaque valeur dans a
la moyenne des deux à côté, n
fois. Lorsqu'il est utilisé à plusieurs reprises avec des valeurs croissantes de n
, cela génère un mouvement ondulatoire:
Détails:
- S'il se trouve qu'il n'y a qu'un seul élément dans
a
, ou sin
est 0 ou moins, le programme doit retourner le tableau d'origine. - Les entrées et sorties peuvent être dans n'importe quel format que vous désirez, tant qu'elles sont visiblement séparées.
Pour chaque étape:
- Le premier élément
a
doit devenir la moyenne de lui-même et l'élément suivant. - Le dernier élément
a
doit devenir la moyenne de lui-même et de l'élément précédent. - Tout autre élément
a
doit devenir la moyenne de l'élément précédent et de l'élément suivant. - Assurez-vous de calculer à partir du tableau de l'étape précédente et non de celui en cours!
Cas de test: REMARQUE: vos entrées / sorties ne doivent pas nécessairement être dans ce format!
[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]
C'est le code-golf , donc la réponse la plus courte en octets l'emporte. Le gagnant sera choisi dans une semaine (le 1er août). Bonne chance!
Edit: Félicitations au gagnant, @issacg , avec un énorme 18 octets!
n
devrait être 4, pas 5.
n
non fournis eta
non fournis - ils n'ajoutent pas vraiment grand-chose.