Un número poligonal es el número de puntos en un k
-gon de tamaño n
.
Se le dará n
y k
, y su tarea es escribir un programa / función que genere / imprima el número correspondiente.
Puntuación
Este es el código de golf . La solución más corta en bytes gana.
Ejemplo
El 3
número del hexágono rd ( k=6, n=3
) se 28
debe a que hay 28
puntos arriba.
Casos de prueba
Se puede generar a partir de este conjunto de pruebas de Pyth .
Uso: dos líneas por caso de prueba, n
arriba, k
abajo.
n k output
10 3 55
10 5 145
100 3 5050
1000 24 10990000
Más información
- En Wikipedia: https://en.wikipedia.org/wiki/Polygonal_number
- En Wolfram Mathworld: http://mathworld.wolfram.com/PolygonalNumber.html
- En OEIS Wiki: http://oeis.org/wiki/Polygonal_numbers
- Secuencias OEIS para n números gonales para varios 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)
n=3
yk=6
en tu suite de prueba, obtienes15
. Si ponesn=4
yk=6
, obtienes28
.Respuestas:
Jalea , 7 bytes
Esto usa la fórmula
para calcular el n ° s número -gonal.
Pruébalo en línea!
Cómo funciona
fuente
Hexagonía , 25 bytes.
Desplegado:
Lee
k
primero yn
segundo (usando cualquier separador).Pruébalo en línea!
Explicación
El programa es completamente lineal, pero como es habitual en Hexagony, el orden de ejecución está por todas partes:
Las rutas se ejecutan en el orden gris , azul oscuro , rojo , azul claro , verde oscuro , rosa . Como puede ver, los tres
/
solo actúan para redirigir el flujo. Además,.
son no-ops. Despojando toda la fantasía hexagonal, el programa lineal resultante es:Esto calcula la fórmula estándar
como la mayoría de las otras respuestas. Lo hace usando los siguientes cinco bordes de memoria, con el puntero de memoria (MP) comenzando como se muestra en rojo:
Así es como se hace esto:
fuente
05AB1E , 8 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea! .
fuente
Laberinto , 13 bytes
Pruébalo en línea!
Explicación
Debido a sus comandos de un solo carácter (que son meramente una necesidad del 2D-ness del lenguaje), Labyrinth puede ser sorprendentemente golfista para programas lineales.
Utiliza la misma fórmula que varias otras respuestas:
En este punto, el puntero de instrucciones llega a un callejón sin salida y gira. Ahora
+
se ejecuta nuevamente, que es un no-op (ya que la parte inferior de la pila se llena implícitamente con una cantidad infinita de ceros), y luego/
intenta una división por cero que termina el programa con un error.fuente
JavaScript (ES6),
2422 bytesExplicación: cada n-gon puede considerarse como n puntos a lo largo de un lado más k-2 triángulos de tamaño n-1, es decir, n + n (n-1) (k-2) / 2.
fuente
k--*n--+2-n
aunque no he probado(k,n)=>n*(--k*--n-n+2)/2
todavía tiene 24 bytes.--n
for(n-1)
. D'oh!k=>n=>n+n*--n*(k-2)/2
CJam, 13 bytes
Pruébalo en línea
fuente
APL (Dyalog Extended) , SBCS de 11 bytes
Gracias a Adám por su ayuda por sugerir esta versión alternativa.
Pruébalo en línea!
Explicación
APL (Dyalog Unicode) ,
1211 bytes SBCSGracias a Adám por su ayuda en jugar golf.
Editar: -1 byte de ngn.
Pruébalo en línea!
No golfista
fuente
En realidad, 12 bytes
Pruébalo en línea!
Explicación:
fuente
dc , 14 bytes
Pruébalo en línea!
Explicación
Esto hace uso de la siguiente fórmula (tenga en cuenta que T n =
n*(n-1)/2
):fuente
Aceto ,
1815 bytesLa respuesta de DC del puerto de Bruce Forte :
Se guardaron 3 bytes al darse cuenta de que cualquier programa Aceto "puro" (sin comandos combinados) se puede escribir linealmente.
fuente
MathGolf , 8 bytes
Pruébalo en línea!
Una alternativa de 8 bytes es
┼┐*½\⌡*+
, que toma la entrada en orden inverso.fuente
> <> , 13 bytes
Pruébalo en línea!
fuente
Mathematica, 17 bytes
Aplicación directa de la fórmula.
Uso
fuente
J, 14 bytes
De acuerdo con la fórmula.
Uso
Explicación
fuente
TI-Basic, 20 bytes
fuente
Lenguaje GameMaker, 44 bytes
fuente
Python 3,
313028 bytesLa ecuación directa de este artículo wiki
¡Gracias a @Mego por guardar un byte!
fuente
Fourier, 18 bytes
Pruébalo en FourIDE!
Toma k como primera entrada yn como segunda entrada. Utiliza la fórmula:
Explicación Pseudocódigo:
fuente
Excel, 22 bytes
Calcula el número
A1
th-B1
gonal.fuente
Java 8, 21 bytes
Todas las respuestas individuales de igual longitud de byte:
Explicación:
Pruébalo aquí.
fuente
Japt ,
1412 bytesIntentalo
fuente
Casco , 9 bytes
Pruébalo en línea!
Explicación
Usando la misma fórmula que en mi
dc
respuesta:fuente
APL (NARS), 16 caracteres, 32 bytes
Se basa en el hecho de que parece prueba n × (n-1) / 2 = suma (1..n-1):
fuente