Zadanie
Twoje zadanie jest proste, generuje sekwencję, która, biorąc pod uwagę wskaźnik i
, wartość na tej pozycji jest sumą kwadratów od 0
września i
gdzie i >= 0
.
Przykład:
Input: 0
Output: 0 (0^2)
Input: 4
Output: 30 (0^2 + 1^2 + 2^2 + 3^2 + 4^2)
Input: 5
Output: 55 (0^2 + 1^2 + 2^2 + 3^2 + 4^2 + 5^2)
Specyfikacja:
- Możesz nie przyjmować żadnych danych wejściowych i wyjściowych w nieskończoność;
- Możesz przyjmować dane wejściowe
N
i wyjścioweNth
elementu sekwencji; - Możesz wziąć dane wejściowe
N
i wyjściowe pierwszychN
elementów sekwencji.
code-golf
number
sequence
arithmetic
Felipe Nardi Batista
źródło
źródło
f(1) == 1 * 1 (1)
if(24) == 70 * 70 (4900)
.f(1) = 1
?f(0) = 0
. wskazałem na kilka odpowiedzi, które nie spełniły tego wymoguf(0) = 0
Wymóg zniszczony kilka moich rozwiązań :(Odpowiedzi:
Galaretka , 3 bajty
Wypróbuj online!
FGITW
Wyjaśnienie
źródło
Ræ.R
Python 2 , 22 bajty
Wypróbuj online!
Wykorzystuje to formułę zamkniętą n * (n + 1) * (2 * n + 1) / 6 . Kod wykonuje następujące operacje:
Mnoży n przez (
n*
):~n
), które zasadniczo oznacza -1-n .*~(n*2)
), co oznacza -1-2n .Dzieli przez 6 (
/6
).Python 2 , 27 bajtów
Wypróbuj online!
Zaoszczędzono 1 bajt dzięki Rod i 1 dzięki GB .
źródło
MATL , 3 bajty
... czy oni?
Wypróbuj online!
Wyjaśnienie
źródło
JavaScript (ES6), 16 bajtów
Próbny
Pokaż fragment kodu
W jaki sposób?
Wyrażenie
n+++n
jest analizowane jakon++ + n
(1) . Nie to, że to naprawdę ma znaczenie, ponieważn + ++n
działałoby również w tym przypadku.W związku z tym:
który ma wartość sumy (k = 0 ... n) (k²) .
(1) Można to zweryfikować, wykonując
n='2';console.log(n+++n)
co daje liczbę całkowitą5
, podczas gdyn + ++n
daje ciąg'23'
.źródło
05AB1E , 3 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Brain-Flak , 36 bajtów
Wypróbuj online!
źródło
({<(({}))>{({})({}[()])}{}<({}[()])>})
dla 38Brain-Flak , 34 bajty
Wypróbuj online!
Jak to działa?
Początkowo miałem ten sam pomysł co Riley 1, ale źle było używać zerowania. Wtedy zdałem sobie z tego sprawę
Oblicza n 2 - n.
Czemu? Dobrze wiemy
Oblicza n 2 i pętle n razy. Oznacza to, że jeśli zmienimy kolejność dwóch wypychań, przechodzimy od zwiększania sumy za każdym razem o n + (n-1) do zwiększania sumy za każdym razem (n-1) + (n-1). Spowoduje to zmniejszenie wyniku o jeden na pętlę, co spowoduje, że nasz wynik n 2 - n. Na najwyższym poziomie to -n anuluje n generowane przez push, który zerowaliśmy, zmniejszając potrzebę zerowania i oszczędzając nam dwa bajty.
Brain-Flak , 36 bajtów
Wypróbuj online!
Oto inne rozwiązanie, nie jest tak golfowe, ale jest dość dziwne, więc pomyślałem, że zostawię to jako wyzwanie, aby dowiedzieć się, jak to działa.
Jeśli nie interesuje Cię Brain-Flak, ale nadal chcesz wyzwanie tutaj, jest to podsumowanie.
1: Wymyśliłem swoje rozwiązanie, zanim spojrzałem na odpowiedzi tutaj. Więc nie ma tu plagiatu.
źródło
Łuska , 3 bajty
Wypróbuj online!
źródło
Ohm v2 , 3 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Japt , 3 bajty
Wypróbuj tutaj.
-1 dzięki Shaggy .
Wyjaśnienie:
źródło
p2
.Brain-Flak , 46 bajtów
Wypróbuj online!
źródło
({{({})({}[()])}{}}{})
i oszczędza ci 10 bajtów. (Jeśli to nie ma sensu,CJam , 10 bajtów
Wypróbuj online!
źródło
ri),_.*:+
lubri),2f#:+
?Wolfram Language (Mathematica) , 14 bajtów
Wypróbuj online!
źródło
#.#&@Range@#&
zapisuje bajt#.#&@*Range
.Właściwie 3 bajty
Wypróbuj online!
Pobiera
N
jako dane wejściowe i wysyłaN
element th w sekwencji.Wyjaśnienie:
źródło
APL (Dyalog) ,
75 bajtów2 bajty zapisane dzięki @Mego
Wypróbuj online!
W jaki sposób?
⍳
- zasięg+.×
- produkt kropkowy⍨
- z samym sobąźródło
¨⍳
to konieczneR, 17 bajtów
Dość proste, to korzysta z faktu, że
^
(potęgowanie) jest wektorowy w R .źródło
(x=0:scan())%*%x
jest krótszy o bajt, ale uważam, że potrzebujeszcat
wyjścia.cat
niego, wyświetla macierz 1x1.cat
konieczny, aby kwalifikować się jako pełny program. Jeśli chcesz to zmienić, odpowiedz na to pytanie i uzyskaj odrobinę trakcji wśród innych R. osób na stronie.CJam , 9 bajtów
Wypróbuj online!
Wyjaśnienie
Alternatywnie:
Kwadrat ten obejmuje każdy element poprzez mapowanie
2#
zamiast używania produktów parowanych. I dla zabawy kolejna alternatywa, która staje się niedokładna dla dużych danych wejściowych, ponieważ wykorzystuje arytmetykę zmiennoprzecinkową:źródło
Julia ,
1614 bajtów2 bajty zapisane dzięki @MartinEnder
Wypróbuj online!
W jaki sposób?
(x=1:n)
tworzy szereg1
celun
i przypisać dox
,⋅
dot productx
.źródło
Labirynt , 11 bajtów
Wypróbuj online!
Drukuje sekwencję w nieskończoność.
Wyjaśnienie
Wskaźnik instrukcji cały czas krąży wokół kwadratu kodu:
źródło
Cubix , 15 bajtów
Wypróbuj online!
Mój kod jest trochę smutny
):
Oblicza
n*(n+1)*(2n+1)/6
źródło
Befunge , 16 bajtów
Stosując formułę zamkniętą n * (n + 1) * (2n + 1) / 6 .
Wypróbuj online!
Befunge , 38 bajtów
Korzystanie z pętli.
Wypróbuj online!
źródło
Haskell, 20 bajtów
Wypróbuj online!
źródło
Excel, 19 bajtów
źródło
Sześciokąt , 23 bajty
Wypróbuj online!
Wyjaśnienie
Rozłożony:
To jest naprawdę tylko liniowy program z
/
pewnym przekierowaniem. Kod liniowy to:Który oblicza n (n + 1) (2n + 1) / 6 . Wykorzystuje następujące krawędzie pamięci:
Gdzie punkt pamięci (MP) zaczyna się na krawędzi oznaczonej n , wskazując na północ.
Teoretycznie może być możliwe dopasowanie tego programu do 3 długości boku, ponieważ
/
nie są one potrzebne do obliczeń,:
mogą być ponownie użyte do zakończenia programu, a niektóre z nich'"=+*{
mogą być również wielokrotnego użytku, zwiększając liczbę wymaganych polecenia poniżej 19 (maksimum dla długości boku 3). Wątpię, czy można znaleźć takie rozwiązanie ręcznie, jeśli w ogóle istnieje.źródło
> <> ,
151311 bajtówZaoszczędzono 2 bajty dzięki Not a tree
Wypróbuj online!
Wysyła sekwencję w nieskończoność.
źródło
-v
flagi):::1+:}+**6,n
( Wypróbuj online! )N=1
): Wypróbuj online!l
. Sprawdzanie za pomocą OP, czy można zacząć od 1.l
pomysł z odpowiedzi Labiryntu Martina Endera .)Pyth ,
75 bajtów dzięki Stevenowi H.Wyjaśnienie:
Moje pierwsze rozwiązanie
Wypróbuj online!
Wyjaśnienie:
źródło
Neim , 3 bajty
Może to być wyzwanie, aby pochwalić się wbudowanymi liczbami wielokątów Neima, ale najwyraźniej nie.
Wypróbuj online!
źródło
Oaza , 4 bajty
Wypróbuj online!
Wyjaśnienie
źródło
Brachylog , 5 bajtów
Wypróbuj online!
Wyjaśnienie
źródło
Gaia , 3 bajty
Wypróbuj online!
źródło