Un nombre polygonal est le nombre de points dans un k
-gon de taille n
.
On vous donnera n
et k
, et votre tâche consiste à écrire un programme / fonction qui génère / imprime le numéro correspondant.
Notation
C'est du code-golf . La solution la plus courte en octets gagne.
Exemple
Le 3
numéro hexagonal ( k=6, n=3
) est 28
dû au fait qu'il y a des 28
points au-dessus.
Cas de test
Peut être généré à partir de cette suite de tests Pyth .
Utilisation: deux lignes par testcase, en n
haut, en k
bas.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Plus d'informations
- Dans Wikipedia: https://en.wikipedia.org/wiki/Polygonal_number
- Dans Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- Dans le wiki OEIS: http://oeis.org/wiki/Polygonal_numbers
- Séquences OEIS pour n nombres géographiques pour différents 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
la source
la source
n=3
etk=6
dans votre suite de tests, vous obtenez15
. Si vous mettezn=4
etk=6
vous obtenez28
.Réponses:
Gelée , 7 octets
Cela utilise la formule
pour calculer la n ième du nombre -gonal.
Essayez-le en ligne!
Comment ça fonctionne
la source
Hexagonie , 25 octets
Déplié:
Lit la
k
première et lan
seconde (en utilisant n'importe quel séparateur).Essayez-le en ligne!
Explication
Le programme est complètement linéaire, mais comme d'habitude dans Hexagony, l'ordre d'exécution est partout:
Les chemins sont exécutés dans l'ordre gris , bleu foncé , rouge , bleu clair , vert foncé , rose . Comme vous pouvez le voir, les trois
/
n'agissent que pour rediriger le flux. De plus, ce.
ne sont pas des opérations. Dépouillant toute fantaisie hexagonale, le programme linéaire résultant est:Ceci calcule la formule standard
comme la plupart des autres réponses. Il le fait en utilisant les cinq bords de mémoire suivants, avec le pointeur de mémoire (MP) commençant comme indiqué en rouge:
Voici comment procéder:
la source
05AB1E , 8 octets
Code:
Explication:
Utilise l' encodage CP-1252 . Essayez-le en ligne! .
la source
Labyrinthe , 13 octets
Essayez-le en ligne!
Explication
En raison de ses commandes à un seul caractère (qui sont simplement une nécessité de la 2D-ness du langage), Labyrinth peut être étonnamment golfique pour les programmes linéaires.
Cela utilise la même formule que plusieurs autres réponses:
À ce stade, le pointeur d'instruction atteint une impasse et se retourne. Now
+
est à nouveau exécuté, ce qui est un no-op (car le bas de la pile est implicitement rempli d'une quantité infinie de zéros), puis/
tente une division par zéro qui termine le programme avec une erreur.la source
JavaScript (ES6),
2422 octetsExplication: Chaque n-gon peut être considéré comme n points le long d'un côté plus k-2 triangles de taille n-1, c'est-à-dire n + n (n-1) (k-2) / 2.
la source
k--*n--+2-n
pas encore testé(k,n)=>n*(--k*--n-n+2)/2
est toujours de 24 octets.--n
for(n-1)
. Oh!k=>n=>n+n*--n*(k-2)/2
CJam, 13 octets
Essayez-le en ligne
la source
APL (Dyalog Extended) , 11 octets SBCS
Merci à Adám pour son aide pour avoir suggéré cette version alternative.
Essayez-le en ligne!
Explication
APL (Dyalog Unicode) ,
1211 octets SBCSMerci à Adám pour son aide à jouer au golf.
Édition: -1 octet de ngn.
Essayez-le en ligne!
Ungolfing
la source
En fait, 12 octets
Essayez-le en ligne!
Explication:
la source
DC , 14 octets
Essayez-le en ligne!
Explication
Cela utilise la formule suivante (notez que T n =
n*(n-1)/2
):la source
Aceto ,
1815 octetsPort de la réponse DC de Bruce Forte :
Enregistrement de 3 octets en réalisant que tout programme Aceto "pur" (pas de commandes combinées) peut être écrit de façon linéaire.
la source
MathGolf , 8 octets
Essayez-le en ligne!
Une alternative à 8 octets est
┼┐*½\⌡*+
, qui prend l'entrée dans l'ordre inverse.la source
> <> , 13 octets
Essayez-le en ligne!
la source
Mathematica, 17 octets
Application simple de la formule.
Usage
la source
J, 14 octets
Basé sur la formule.
Usage
Explication
la source
TI-Basic, 20 octets
la source
Langue GameMaker, 44 octets
la source
Python 3,
313028 octetsL'équation directe de cet article wiki
Merci à @Mego d'avoir enregistré un octet!
la source
Fourier, 18 octets
Essayez-le sur FourIDE!
Prend k comme première entrée et n comme deuxième entrée. Utilise la formule:
Explication du pseudocode:
la source
Excel, 22 octets
Calcule le nombre
A1
thB1
-gonal.la source
Java 8, 21 octets
Toutes les réponses individuelles de longueur d'octet égale:
Explication:
Essayez-le ici.
la source
Japt ,
1412 octetsEssayez-le
la source
Coque , 9 octets
Essayez-le en ligne!
Explication
En utilisant la même formule que dans ma
dc
réponse:la source
APL (NARS), 16 caractères, 32 octets
Il est basé sur le fait que semble n × (n-1) / 2 = test de somme (1..n-1):
la source