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 a
und eine Ganzzahl enthält n
, und dann jeden Wert a
auf den Durchschnitt der beiden daneben stehenden n
Zeiten zu setzen. Bei wiederholter Verwendung mit steigenden Werten von n
wird eine wellenartige Bewegung erzeugt:
Besonderheiten:
- Befindet sich zufällig nur ein Element in
a
odern
ist 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
a
sollte der Durchschnitt von sich selbst und das nächste Element werden. - Das letzte Element in
a
sollte der Durchschnitt von sich selbst und dem vorherigen Element werden. - Jedes andere Element in
a
sollte 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!
n
sollte 4 sein, nicht 5.
n
nicht gelieferten unda
nicht gelieferten Fälle loszuwerden - sie tragen nicht wirklich viel dazu bei.