Opis
Otrzymujesz wyniki funkcji zakresu, w której każdy element został zaokrąglony w dół do najbliższej liczby całkowitej. Twoim celem jest odzyskanie oryginalnej listy.
Na przykład następująca funkcja (w Python3) wygeneruje dane wejściowe dla Twojego programu:
from numpy import arange, floor
def floored_range(A, B, C):
return list(floor(arange(A, B, C)))
Dane wyjściowe programu powinny być prawidłowym odgadnięciem oryginalnych danych. Prawidłowe zgadywanie oznacza tutaj, że musi dokładnie pasować do wejścia, gdy jest zmiennoprzecinkowy i musi być możliwym wyjściem funkcji zakresu (tj. Po wykreśleniu musi tworzyć idealnie prostą linię).
Przykłady
Input: [1,2,3,4]
Output: [1,2,3,4]
Input: [1,2,3,4]
Output: [1.9,2.7,3.5,4.3]
Input: [1,2,3,4,5,5]
Output: [1.9,2.7,3.5,4.3,5.1,5.9]
Input: [1,1,2,2,3,3,4,4]
Output: [1,1.5,2,2.5,3,3.5,4,4.5]
Input: [1,1,2,3,3,4]
Output: [1,1.7,2.4,3.1,3.8,4.5]
Input: [56, 54, 52, 50, 48, 45, 43, 41, 39, 37, 35, 32, 30, 28, 26, 24, 22, 19, 17, 15, 13, 11]
Output: [56.7 , 54.541, 52.382, 50.223, 48.064, 45.905, 43.746, 41.587,
39.428, 37.269, 35.11 , 32.951, 30.792, 28.633, 26.474, 24.315,
22.156, 19.997, 17.838, 15.679, 13.52 , 11.361]
A, B, C
mogą być dowolne trzy zmiennoprzecinkowe. Wejściowy zakres zmiennoprzecinkowy może na przykład zaczynać56.7
, kończyć o10.2
i mieć wielkość kroku wynoszącą-2.159
. Liczy się tylko to, że punkty, które wyprowadzasz, gdy są zmiennoprzecinkowe, dokładnie pasują do danych wejściowych. Dodałem przykład pokazujący to.Odpowiedzi:
Oktawa , 82 bajty
Czas działania nie jest deterministyczny, ale kod kończy się w czasie skończonym z prawdopodobieństwem 1.
Wypróbuj online!
Wyjaśnienie
Kod definiuje
function
zx
generującegoy
. Funkcja składa się zwhile
pętli.W każdej iteracji
numel(x)
generowana jest odpowiednia ilość ( ) liniowo rozmieszczonych wartości (linspace
), zaczynająca się odx(1)+rand
i kończąca nax(end)+rand
. Te dwa wywołaniarand
funkcji dają losowe przesunięcia między0
i1
, które są stosowane do wartości początkowej i końcowejx
.Pętla jest powtarzana tak długo, jak
any
zfloor
wyników ed różni (-
) z odpowiednim wpisemx
.źródło
a!=b
zamiastany(a-b)
Python 3 , 189 bajtów
Wypróbuj online!
Czas sześcienny
Ma pewne problemy numeryczne.
źródło
R , 86 bajtów
Wypróbuj online!
Port R odpowiedzi Luisa Mendo ; generuje wiele ostrzeżeń z powodu
any
przymusu,logical
ale można je zignorować.źródło
Python 3 , 168 bajtów
Wypróbuj online! Objaśnienie:
g
oblicza wartości graniczneC
tego, które leżą tuż poza zakresemA
iB
istnieją. Następnie przyjmuje się średnią, aby podać wartość użytkowąC
, a następnie generuje najniższy możliwy zakres.źródło
Galaretka , 31 bajtów
Wypróbuj online!
Ostrzeżenie : niedokładności zmiennoprzecinkowe.
źródło
[1,2,3,4,5,5]
w ciągu 30 sekund w TIO. Jakieś wyjaśnienie, proszę?JavaScript (Node.js) , 94 bajty, przy założeniu długości wejściowej> 1
Wypróbuj online!
97 bajtów
źródło
[1]
.Python 2 , 212 bajtów
Wypróbuj online!
źródło