Wygląda na to, że jakakolwiek prosta modyfikacja delt przy użyciu spójnej funkcji może być prawie zawsze wykonana inną, krótszą drogą , Dennis . Zatem jedynym rozwiązaniem, jakie mogę sobie wyobrazić, by to utrudnić, jest wprowadzenie jakiejś niespójnej funkcji.
Sortowanie.
Twoim zadaniem jest pobranie tablicy liczb całkowitych, posortowanie ich delt i ponowne skompilowanie, aby uzyskać nową tablicę liczb całkowitych.
NA PRZYKŁAD.
Dla danych wejściowych:
1 5 -3 2 9
Uzyskaj następujące delty:
4 -8 5 7
Następnie posortuj te delty, Wydajność:
-8 4 5 7
I zastosuj je ponownie, co daje:
1 -7 -3 2 9
Wejście wyjście
Otrzymasz listę / tablicę / tabelę / krotkę / stos / itp. liczb całkowitych ze znakiem jako danych wejściowych dowolną standardową metodą wprowadzania.
Zmodyfikowane dane należy ponownie wyprowadzić w dowolnej akceptowalnej formie, zgodnie z powyższą metodą sortowania delta.
Otrzymasz N danych wejściowych, w 0 < N < 10
których każda liczba mieści się w zakresie-1000 < X < 1000
Przypadki testowe
1 5 -3 2 9 -> 1 -7 -3 2 9
-5 -1 -6 5 8 -> -5 -10 -7 -3 8
-8 1 -7 1 1 -> -8 -16 -16 -8 1
8 -9 3 0 -2 -> 8 -9 -12 -14 -2
-5 -2 -5 5 0 -> -5 -10 -13 -10 0
-1 9 -1 -7 9 -> -1 -11 -17 -7 9
Notatki
- Jak wspomniano powyżej, zawsze otrzymasz co najmniej 1 wkład, a nie więcej niż 9.
- Pierwsza i ostatnia liczba danych wyjściowych zawsze będzie zgodna z wartością wejściową.
- Akceptowane jest tylko standardowe wyjście wejściowe
- Standardowe luki zastosowanie
- To jest golf golfowy , więc wygrywa najmniejsza liczba bajtów!
- Baw się dobrze!
Odpowiedzi:
Galaretka , 7 bajtów
Wypróbuj online!
Jak to działa
źródło
MATL , 8 bajtów
Wypróbuj online!
źródło
Mathematica, 40 bajtów
Czysta funkcja przyjmuje listę (dowolnych elementów) jako dane wejściowe i zwraca listę.
FoldList[Plus
zaczyna się od liczby (w tym przypadku,#&@@#
pierwszego elementu wejścia) i wielokrotnie dodaje elementy listy, która nie wymaga wyjaśnieńSort@Differences@#
. To naśladuje zachowanie wbudowanegoAccumulate
, ale pierwsza liczba musiałaby zostać ręcznie dodana do listy różnic ręcznie, co zwiększa liczbę bajtów (o ile wiem).źródło
05AB1E , 9 bajtów
-4 dzięki Emignie
Wypróbuj online!
źródło
¬=s¥{vy+=
Python 2, 92 bajty
źródło
Haskell, 59 bajtów
Awaria:
źródło
scanl(+)a$sort...
JavaScript (ES6), 68 bajtów
W JavaScript okazuje się, że golfistą jest obliczanie odwrotnych delt tablicy . Są one następnie sortowane w kolejności malejącej i kumulatywnie odejmowane od pierwszego elementu.
źródło
Python 2 ,
90 bajtów84 bajtów
Zaoszczędzono 6 bajtów przy użyciu lambda. Dzięki ovs!
Wypróbuj online!
Rozbijając kod,
Happy Coding!
źródło
lambda x:[sum(sorted(map(int.__sub__,x[1:],x[:-1]))[:i])+x[0]for i in range(len(x))]
JavaScript (ES6), 93 bajty
źródło
Python 2 , 97 bajtów
Wypróbuj online!
źródło
[p[i+1]-p[i]for i in range(len(p)-1)]
Pyth, 11 bajtów
To właśnie robi oczywistą rzecz opisaną w oświadczeniu.
Wypróbuj online
Sugestie dotyczące dalszego golfa mile widziane.
źródło
Julia 0,5 , 30 bajtów
Wypróbuj online!
źródło
PHP, 89 bajtów
Uruchom tak:
Wyjaśnienie
źródło
Python 2 z numpy,
6756 bajtówPozwól numpy obliczyć delty, posortuj je, wstaw pierwszy element i pozwól numpy obliczyć sumy sumaryczne. Całkiem tania?
źródło
from numpy import*
in.cumsum
documsum
in.diff
dodiff
Perl 6 , 31 bajtów
Spróbuj
Rozszerzony:
źródło
Partia, 197 bajtów
sort
nie sortuje liczbowo, więc odchylam wszystkie różnice o 5000.źródło
bash + sort, 102 bajty
sh + sort + expr, 106 bajtów
źródło
Clojure, 46 bajtów
Pewnego dnia zamierzam stworzyć język Cljr, który ma krótsze nazwy funkcji niż Clojure.
źródło