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ę a
liczb zmiennoprzecinkowych i liczbę całkowitą n
, a następnie ustawia każdą wartość a
na średnią dwóch obok siebie n
razy. Przy wielokrotnym stosowaniu z rosnącymi wartościami n
generuje to ruch podobny do fali:
Specyfika:
- Jeśli zdarzy się, że jest tylko jeden element
a
, lub jeślin
ma 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
a
powinien stać się średnią dla siebie i następnego elementu. - Ostatni element
a
powinien stać się średnią dla siebie i dla poprzedniego elementu. - Każdy inny element w
a
powinien 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!
n
powinna być 4, a nie 5.
n
nie dostarczonych ia
nie dostarczonych skrzynek - tak naprawdę niewiele.