Eine polygonale Zahl ist die Anzahl der Punkte in einem k
-gon der Größe n
.
Sie erhalten n
und k
, und Ihre Aufgabe ist es, ein Programm / eine Funktion zu schreiben, das / die die entsprechende Nummer ausgibt / druckt.
Wertung
Das ist Code-Golf . Kürzeste Lösung in Bytes gewinnt.
Beispiel
Die 3
rd hexagon number ( k=6, n=3
) ist, 28
weil 28
oben Punkte sind.
Testfälle
Kann aus dieser Pyth-Testsuite generiert werden .
Verwendung: zwei Zeilen pro Testfall, n
oben, k
unten.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Weitere Informationen
- In Wikipedia: https://en.wikipedia.org/wiki/Polygonal_number
- In Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- Im OEIS-Wiki: http://oeis.org/wiki/Polygonal_numbers
- OEIS-Sequenzen für n- eckige Zahlen für verschiedene 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
Undichte Nonne
quelle
quelle
n=3
undk=6
in Ihre Testsuite setzen, erhalten Sie15
. Wenn Sie inn=4
und setzenk=6
, erhalten Sie28
.Antworten:
Gelee , 7 Bytes
Dies verwendet die Formel
um die n- te s -gonale Zahl zu berechnen .
Probieren Sie es online!
Wie es funktioniert
quelle
Hexagonie , 25 Bytes
Entfaltet:
Liest
k
zuerst undn
zweitens (unter Verwendung eines beliebigen Trennzeichens).Probieren Sie es online!
Erläuterung
Das Programm ist komplett linear, aber wie in Hexagony üblich, ist die Reihenfolge der Ausführung überall:
Die Pfade werden in der Reihenfolge Grau , Dunkelblau , Rot , Hellblau , Dunkelgrün ausgeführt . Rosa ausgeführt . Wie Sie sehen,
/
leiten die drei nur den Fluss um. Auch das.
sind No-Ops. Das resultierende lineare Programm ist:Dies berechnet die Standardformel
Wie die meisten anderen Antworten. Dabei werden die folgenden fünf Speicherkanten verwendet, wobei der Speicherzeiger (MP) wie in Rot angezeigt beginnt:
So wird das gemacht:
quelle
05AB1E , 8 Bytes
Code:
Erläuterung:
Verwendet die CP-1252- Codierung.Probieren Sie es online! .
quelle
Labyrinth , 13 Bytes
Probieren Sie es online!
Erläuterung
Aufgrund seiner Einzelzeichenbefehle (die lediglich eine Notwendigkeit für die 2D-Fähigkeit der Sprache sind) kann Labyrinth für lineare Programme überraschend gut sein.
Dabei wird dieselbe Formel wie bei mehreren anderen Antworten verwendet:
Zu diesem Zeitpunkt stößt der Befehlszeiger auf eine Sackgasse und dreht sich um. Jetzt
+
wird erneut ausgeführt, was ein No-Op ist (da der Boden des Stapels implizit mit einer unendlichen Anzahl von Nullen gefüllt ist), und dann wird/
eine Division durch Null versucht, die das Programm mit einem Fehler beendet.quelle
JavaScript (ES6),
2422 BytesErklärung: Jedes n-Gon kann als n Punkte entlang einer Seite plus k-2 Dreiecke der Größe n-1 betrachtet werden, dh n + n (n-1) (k-2) / 2.
quelle
k--*n--+2-n
habe aber nicht getestet(k,n)=>n*(--k*--n-n+2)/2
es sind noch 24 Bytes.--n
für übersehen(n-1)
. D'oh!k=>n=>n+n*--n*(k-2)/2
CJam, 13 Bytes
Probieren Sie es online aus
quelle
APL (Dyalog Extended) , 11 Byte SBCS
Vielen Dank an Adám für seine Hilfe bei der Empfehlung dieser alternativen Version.
Probieren Sie es online!
Erläuterung
APL (Dyalog Unicode) ,
12 bis11 Byte SBCSVielen Dank an Adám für seine Hilfe beim Golfen.
Edit: -1 Byte von ngn.
Probieren Sie es online!
Ungolfing
quelle
Eigentlich 12 Bytes
Probieren Sie es online!
Erläuterung:
quelle
Gleichstrom , 14 Bytes
Probieren Sie es online!
Erläuterung
Dies macht Gebrauch von der folgenden Formel (beachte, dass T n =
n*(n-1)/2
):quelle
Aceto ,
1815 BytesHafen der Bruce Forte dc Antwort :
3 Bytes gespart durch die Erkenntnis, dass jedes "reine" (keine kombinierten Befehle) Aceto-Programm linear geschrieben werden kann.
quelle
MathGolf , 8 Bytes
Probieren Sie es online!
Erklärung (mitn = 10 , k = 5
Eine alternative 8-Byte-Methode ist
┼┐*½\⌡*+
, bei der die Eingabe in umgekehrter Reihenfolge erfolgt.quelle
> <> , 13 Bytes
Probieren Sie es online!
quelle
Mathematica, 17 Bytes
Einfache Anwendung der Formel.
Verwendung
quelle
J, 14 Bytes
Basierend auf der Formel.
Verwendung
Erläuterung
quelle
TI-Basic, 20 Bytes
quelle
GameMaker-Sprache, 44 Byte
quelle
Python 3,
313028 BytesDie aufrichtige Gleichung aus diesem Wiki-Artikel
Vielen Dank an @Mego für das Speichern eines Bytes!
quelle
Fourier, 18 Bytes
Probieren Sie es auf FourIDE!
Nimmt k als erste Eingabe und n als zweite Eingabe. Verwendet die Formel:
Erklärung Pseudocode:
quelle
Excel, 22 Bytes
Berechnet die
A1
th-B1
eckige Zahl.quelle
Java 8, 21 Bytes
Alle Einzelantworten gleicher Bytelänge:
Erläuterung:
Probieren Sie es hier aus.
quelle
Japt ,
1412 BytesVersuch es
quelle
Schale , 9 Bytes
Probieren Sie es online!
Erläuterung
Mit der gleichen Formel wie in meiner
dc
Antwort:quelle
APL (NARS), 16 Zeichen, 32 Byte
Es basiert auf der Tatsache, dass n × (n-1) / 2 = Summe (1..n-1) Test scheint:
quelle