Liczba wieloboczna to liczba kropek w k
-gon wielkości n
.
Dostaniesz n
a k
, a Twoim zadaniem jest napisanie programu / funkcję wyjścia / drukuje odpowiedni numer.
Punktacja
To jest golf golfowy . Najkrótsze rozwiązanie w bajtach wygrywa.
Przykład
3
Liczba rd sześciokąt ( k=6, n=3
) jest 28
, ponieważ istnieje 28
kropki powyżej.
Przypadki testowe
Można wygenerować z tego zestawu testów Pyth .
Zastosowanie: dwa wiersze na przypadek testowy, n
powyżej, k
poniżej.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Dalsza informacja
- W Wikipedii: https://en.wikipedia.org/wiki/Polygonal_number
- W Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- W OEIS Wiki: http://oeis.org/wiki/Polygonal_numbers
- Sekwencje OEIS dla n -gonalnych liczb dla różnych n : 3 (A000217) , 4 (A000290) , 5 (A000326) , 6 (A000384) , 7 (A000566) , 8 (A000567) , 9 (A001106) , 10 (A001107) , 11 (A051682) , 12 (A051624) , 13 (A051865) , 14 (A051866) , 15 (A051867) , 16 (A051868) , 17 (A051869) , 18 (A051870) , 19 (A051871) , 20 (A051872) , 21 (A051873) , 22 (A051874) , 23 (A051875) , 24 (A051876)
code-golf
sequence
number-theory
code-golf
math
geometry
code-golf
combinatorics
code-golf
integer
code-golf
arithmetic
number-theory
code-golf
arithmetic
restricted-source
number-theory
restricted-complexity
Leaky Nun
źródło
źródło
n=3
ik=6
do swojego zestawu testowego, można dostać15
. Jeśli włożyszn=4
ik=6
, dostaniesz28
.Odpowiedzi:
Galaretka , 7 bajtów
To używa formuły
obliczyć n- tą liczbę g- s .
Wypróbuj online!
Jak to działa
źródło
Sześciokąt , 25 bajtów
Rozłożony:
Odczytuje
k
pierwszy in
drugi (za pomocą dowolnego separatora).Wypróbuj online!
Wyjaśnienie
Program jest całkowicie liniowy, ale jak zwykle w Hexagony, kolejność wykonywania jest wszędzie:
Ścieżki są wykonywane w kolejności szary , ciemnoniebieski , czerwony , jasnoniebieski , ciemnozielony , różowy . Jak widać, wszystkie trzy
/
działają tylko w celu przekierowania przepływu. Poza tym.
nie ma operacji . Po usunięciu wszystkich sześciokątnych fanciness powstały program liniowy to:To oblicza standardową formułę
jak większość innych odpowiedzi. Robi to przy użyciu następujących pięciu krawędzi pamięci, przy czym wskaźnik pamięci (MP) zaczyna się jak pokazano na czerwono:
Oto jak to się robi:
źródło
05AB1E , 8 bajtów
Kod:
Wyjaśnienie:
Wykorzystuje kodowanie CP-1252 . Wypróbuj online! .
źródło
Labirynt , 13 bajtów
Wypróbuj online!
Wyjaśnienie
Ze względu na komendy jednoznakowe (które są jedynie koniecznością dwuwymiarowości języka) Labirynt może zaskakująco grać w golfa w przypadku programów liniowych.
Wykorzystuje tę samą formułę, co kilka innych odpowiedzi:
W tym momencie wskaźnik instrukcji uderza w ślepy zaułek i odwraca się. Teraz
+
jest wykonywany ponownie, co oznacza brak operacji (ponieważ spód stosu jest domyślnie wypełniony nieskończoną liczbą zer), a następnie/
podejmuje próbę dzielenia przez zero, co kończy program z błędem.źródło
JavaScript (ES6),
2422 bajtówObjaśnienie: Każdy n-gon może być uważany za n punktów wzdłuż jednego boku plus trójkąty k-2 o wielkości n-1, tj. N + n (n-1) (k-2) / 2.
źródło
k--*n--+2-n
jeszcze nie testowałem(k,n)=>n*(--k*--n-n+2)/2
wciąż ma 24 bajty.--n
dla(n-1)
. Nie!k=>n=>n+n*--n*(k-2)/2
CJam, 13 bajtów
Wypróbuj online
źródło
APL (Dyalog Extended) , 11 bajtów SBCS
Dzięki Adámowi za pomoc w zasugerowaniu tej alternatywnej wersji.
Wypróbuj online!
Wyjaśnienie
APL (Dyalog Unicode) ,
1211 bajtów SBCSDzięki Adámowi za pomoc w grze w golfa.
Edycja: -1 bajt od ngn.
Wypróbuj online!
Ungolfing
źródło
Właściwie 12 bajtów
Wypróbuj online!
Wyjaśnienie:
źródło
dc , 14 bajtów
Wypróbuj online!
Wyjaśnienie
Wykorzystuje to następujący wzór (zauważ, że T n =
n*(n-1)/2
):źródło
Aceto ,
1815 bajtówOdpowiedź dc Port of the Bruce Forte :
Zaoszczędzono 3 bajty, wiedząc, że każdy „czysty” (bez połączonych poleceń) program Aceto można zapisać liniowo.
źródło
MathGolf , 8 bajtów
Wypróbuj online!
Alternatywny jest 8 bajtów
┼┐*½\⌡*+
, który pobiera dane wejściowe w odwrotnej kolejności.źródło
> <> , 13 bajtów
Wypróbuj online!
źródło
Mathematica, 17 bajtów
Proste stosowanie formuły.
Stosowanie
źródło
J, 14 bajtów
Na podstawie wzoru.
Stosowanie
Wyjaśnienie
źródło
TI-Basic, 20 bajtów
źródło
GameMaker Language, 44 bajty
źródło
Python 3,
313028 bajtówProste równanie z tego artykułu wiki
Dzięki @Mego za uratowanie bajtu!
źródło
Fourier, 18 bajtów
Wypróbuj na FourIDE!
Pobiera k jako pierwsze wejście, a n jako drugie wejście. Korzysta ze wzoru:
Objaśnienie Pseudokod:
źródło
Excel, 22 bajty
Oblicza liczbę
A1
th-B1
gonal.źródło
Java 8, 21 bajtów
Wszystkie indywidualne odpowiedzi o jednakowej długości bajtów:
Wyjaśnienie:
Wypróbuj tutaj.
źródło
Japt ,
1412 bajtówSpróbuj
źródło
Łuska , 9 bajtów
Wypróbuj online!
Wyjaśnienie
Używając tej samej formuły, co w mojej
dc
odpowiedzi:źródło
APL (NARS), 16 znaków, 32 bajty
Opiera się na fakcie, że wydaje się, że test n × (n-1) / 2 = suma (1..n-1):
źródło