Tarea
Su tarea es simple, generar una secuencia que, dado el índice i
, el valor en esa posición es la suma de cuadrados desde 0
hasta i
donde i >= 0
.
Ejemplo:
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)
Especificación:
- No puede realizar ninguna entrada y salida de la secuencia indefinidamente;
- Puede tomar entrada
N
y salida delNth
elemento de la secuencia; - Puede tomar entrada
N
y salida los primerosN
elementos de la secuencia.
code-golf
number
sequence
arithmetic
Felipe Nardi Batista
fuente
fuente
f(1) == 1 * 1 (1)
yf(24) == 70 * 70 (4900)
.f(1) = 1
?f(0) = 0
. He señalado que a las pocas respuestas que fallaron ese requisitof(0) = 0
requisito arruinó algunas de mis soluciones :(Respuestas:
Jalea , 3 bytes
Pruébalo en línea!
FGITW
Explicación
fuente
Ræ.R
Python 2 , 22 bytes
Pruébalo en línea!
Utiliza la fórmula de forma cerrada n * (n + 1) * (2 * n + 1) / 6 . El código realiza las siguientes operaciones:
Multiplica n por (
n*
):~n
), que esencialmente significa -1-n .*~(n*2)
), que significa -1-2n .Se divide por 6 (
/6
).Python 2 , 27 bytes
Pruébalo en línea!
Guardado 1 byte gracias a Rod y 1 gracias a GB .
fuente
MATL , 3 bytes
... o ellos?
Pruébalo en línea!
Explicación
fuente
JavaScript (ES6), 16 bytes
Manifestación
Mostrar fragmento de código
¿Cómo?
La expresión
n+++n
se analiza comon++ + n
(1) . No es que realmente importe porquen + ++n
también funcionaría en este caso.Por lo tanto:
que se evalúa como suma (k = 0 ... n) (k²) .
(1) Esto se puede verificar haciendo lo
n='2';console.log(n+++n)
que da el número entero5
, mientrasn + ++n
que daría la cadena'23'
.fuente
05AB1E , 3 bytes
Pruébalo en línea!
Explicación
fuente
Brain-Flak , 36 bytes
Pruébalo en línea!
fuente
({<(({}))>{({})({}[()])}{}<({}[()])>})
por 38Brain-Flak , 34 bytes
Pruébalo en línea!
¿Como funciona?
Inicialmente tuve la misma idea que Riley 1, pero me sentí mal al usar un cero. Entonces me di cuenta de que
Calcula n 2 - n.
¿Por qué? Bueno sabemos
Calcula n 2 y repite n veces. Eso significa que si cambiamos el orden de los dos impulsos, pasamos de aumentar la suma en n + (n-1) cada vez a aumentar la suma en (n-1) + (n-1) cada vez. Esto disminuirá el resultado en uno por ciclo, haciendo que nuestro resultado sea n 2 - n. En el nivel superior, esto -n se cancela con la n generada por el impulso que estábamos poniendo a cero aliviando la necesidad de un cero y ahorrándonos dos bytes.
Brain-Flak , 36 bytes
Pruébalo en línea!
Aquí hay otra solución, no es tan elegante, pero es bastante extraño, así que pensé que lo dejaría como un desafío para descubrir cómo funciona.
Si no te gusta Brain-Flak pero aún quieres el desafío aquí, es como un resumen.
1: Se me ocurrió mi solución antes de mirar las respuestas aquí. Así que no hay plagio aquí.
fuente
Casco , 3 bytes
Pruébalo en línea!
fuente
Ohm v2 , 3 bytes
Pruébalo en línea!
Explicación
fuente
Japt , 3 bytes
Pruébalo aquí
-1 gracias a Shaggy .
Explicación:
fuente
p2
.Brain-Flak , 46 bytes
Pruébalo en línea!
fuente
({{({})({}[()])}{}}{})
y le ahorra 10 bytes. (Si eso no tiene sentido, hágame ping en la tercera pila )CJam , 10 bytes
Pruébalo en línea!
fuente
ri),_.*:+
ori),2f#:+
?Wolfram Language (Mathematica) , 14 bytes
Pruébalo en línea!
fuente
#.#&@Range@#&
ahorra un byte#.#&@*Range
.En realidad , 3 bytes
Pruébalo en línea!
Toma
N
como entrada y da salida alN
elemento th en la secuencia.Explicación:
fuente
APL (Dyalog) ,
75 bytes2 bytes guardados gracias a @Mego
Pruébalo en línea!
¿Cómo?
⍳
- distancia+.×
- producto de punto⍨
- consigo mismofuente
¨⍳
era necesarioR, 17 bytes
Bastante sencillo, que se aprovecha del hecho de que
^
(exponenciación) está vectorizada en R .fuente
(x=0:scan())%*%x
es más corto por byte, pero creo que necesita uncat
para obtener salida.cat
, genera una matriz 1x1.cat
es necesario para que esto califique como un programa completo. Si desea cambiar eso, responda esta pregunta y obtenga algo de tracción entre las otras personas R en el sitio.CJam , 9 bytes
Pruébalo en línea!
Explicación
Alternativamente:
Esto cuadra cada elemento mediante mapeo en
2#
lugar de usar productos por pares. Y solo por diversión, otra alternativa que se vuelve imprecisa para entradas grandes porque usa aritmética de punto flotante:fuente
Julia ,
1614 bytes2 bytes guardados gracias a @MartinEnder
Pruébalo en línea!
¿Cómo?
(x=1:n)
crea una serie de1
an
y asignar ax
,⋅
dot producto conx
.fuente
Laberinto , 11 bytes
Pruébalo en línea!
Imprime la secuencia indefinidamente.
Explicación
El puntero de instrucciones sigue corriendo alrededor del cuadrado de código una y otra vez:
fuente
Cubix , 15 bytes
Pruébalo en línea!
Mi código es un poco triste
):
Computa
n*(n+1)*(2n+1)/6
fuente
Befunge , 16 bytes
Usando la fórmula de forma cerrada n * (n + 1) * (2n + 1) / 6 .
Pruébalo en línea!
Befunge , 38 bytes
Usando un bucle.
Pruébalo en línea!
fuente
Haskell, 20 bytes
Pruébalo en línea!
fuente
Excel, 19 bytes
fuente
Hexagonía , 23 bytes.
Pruébalo en línea!
Explicación
Desplegado:
Esto es realmente solo un programa lineal con el
/
utilizado para alguna redirección. El código lineal es:Que calcula n (n + 1) (2n + 1) / 6 . Utiliza los siguientes bordes de memoria:
Donde el punto de memoria (MP) comienza en el borde con la etiqueta n , apuntando hacia el norte.
En teoría, podría ser posible ajustar este programa en la longitud lateral 3, ya que
/
no son necesarios para el cálculo,:
pueden reutilizarse para terminar el programa, y algunos de ellos también'"=+*{
pueden ser reutilizables, lo que aumenta el número de comandos por debajo de 19 (el máximo para la longitud lateral 3). Sin embargo, dudo que sea posible encontrar una solución a mano, si es que existe.fuente
> <> ,
151311 bytesGuardado 2 bytes gracias a No es un árbol
Pruébalo en línea!
Emite la secuencia indefinidamente.
fuente
-v
bandera):::1+:}+**6,n
(¡ Pruébelo en línea! )N=1
): ¡ Pruébelo en línea!l
. Comprobando con OP si está bien comenzar a las 1.l
idea de la respuesta del Laberinto de Martin Ender ).Pyth ,
75 bytes gracias a Steven HExplicación:
Mi primera solucion
Pruébalo en línea!
Explicación:
fuente
Neim , 3 bytes
Esto podría haber sido un desafío para mostrar los números poligonales incorporados de Neim, pero aparentemente no.
Pruébalo en línea!
fuente
Oasis , 4 bytes
Pruébalo en línea!
Explicación
fuente
Brachylog , 5 bytes
Pruébalo en línea!
Explicación
fuente
Gaia , 3 bytes
Pruébalo en línea!
fuente