Ich habe eine Weile auf dieser Seite geblättert, bin aber erst kürzlich sehr daran interessiert, einige der Herausforderungen auszuprobieren. Ich hatte vor, mich in einigen der bestehenden Code-Golf-Themen zu versuchen, hatte aber gestern eine Weile keinen Internetzugang und habe mir in der Zwischenzeit meine eigene Herausforderung ausgedacht.
Ihre Aufgabe ist es, ein Programm oder eine Funktion zu erstellen, die ein Array von Gleitkommazahlen aund eine Ganzzahl enthält n, und dann jeden Wert aauf den Durchschnitt der beiden daneben stehenden nZeiten zu setzen. Bei wiederholter Verwendung mit steigenden Werten von nwird eine wellenartige Bewegung erzeugt:

Besonderheiten:
- Befindet sich zufällig nur ein Element in
aodernist es 0 oder weniger, sollte das Programm das ursprüngliche Array zurückgeben. - Ein- und Ausgänge können in jedem gewünschten Format vorliegen, sofern sie sichtbar voneinander getrennt sind.
Für jeden Schritt:
- Das erste Element in
asollte der Durchschnitt von sich selbst und das nächste Element werden. - Das letzte Element in
asollte der Durchschnitt von sich selbst und dem vorherigen Element werden. - Jedes andere Element in
asollte der Durchschnitt des vorherigen Elements und des nächsten Elements werden. - Stellen Sie sicher, dass Sie das Array des vorherigen Schritts und nicht das aktuelle Array berechnen!
Testfälle: HINWEIS: Ihre Ein- / Ausgänge müssen nicht in diesem Format vorliegen!
[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]
Das ist Code-Golf , also gewinnt die kürzeste Antwort in Bytes. Der Gewinner wird in einer Woche (am 1. August) ermittelt. Viel Glück!
Edit: Herzlichen Glückwunsch an den Gewinner, @issacg , mit satten 18 Bytes!
nsollte 4 sein, nicht 5.
nnicht gelieferten undanicht gelieferten Fälle loszuwerden - sie tragen nicht wirklich viel dazu bei.