Od pewnego czasu przewijam tę stronę, ale ostatnio bardzo zainteresowałem się wypróbowaniem niektórych wyzwań. Zamierzałem spróbować swoich sił w niektórych z istniejących tematów związanych z golfem, ale wczoraj nie miałem dostępu do Internetu, a tymczasem wymyśliłem własne wyzwanie.
Twoim zadaniem jest stworzenie programu lub funkcji, która pobiera tablicę aliczb zmiennoprzecinkowych i liczbę całkowitą n, a następnie ustawia każdą wartość ana średnią dwóch obok siebie nrazy. Przy wielokrotnym stosowaniu z rosnącymi wartościami ngeneruje to ruch podobny do fali:

Specyfika:
- Jeśli zdarzy się, że jest tylko jeden element
a, lub jeślinma wartość 0 lub mniej, program powinien zwrócić oryginalną tablicę. - Wejścia i wyjścia mogą być w dowolnym formacie, pod warunkiem, że są wyraźnie oddzielone.
Dla każdego kroku:
- Pierwszy element
apowinien stać się średnią dla siebie i następnego elementu. - Ostatni element
apowinien stać się średnią dla siebie i dla poprzedniego elementu. - Każdy inny element w
apowinien stać się średnią z poprzedniego elementu i następnego elementu. - Upewnij się, że obliczasz tablicę poprzedniego kroku, a nie bieżącą!
Przypadki testowe: UWAGA: Twoje wejścia / wyjścia nie muszą być w tym formacie!
[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]
To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach. Zwycięzca zostanie wybrany za tydzień (1 sierpnia). Powodzenia!
Edycja: Gratulacje dla zwycięzcy, @issacg , z ogromną liczbą 18 bajtów!
npowinna być 4, a nie 5.
nnie dostarczonych ianie dostarczonych skrzynek - tak naprawdę niewiele.