Esta pregunta fue modificada, vuelva a leerla.
Ultrafactoriales
Los ultrafactoriales son una secuencia de números que se pueden generar utilizando la siguiente función:
a(n) = n! ^ n!
Los valores resultantes aumentan extremadamente rápido. Nota al margen : Esta es la entrada A046882 en el OEIS. También se relacionan los hiperfactoriales, una secuencia todavía bastante grande, pero un poco más pequeña: A002109
Tu tarea
Su tarea es implementar estos números en su idioma. Su programa calculará la suma de todos los ultrafactoriales desde 0 hasta inclusive n
.
Entrada
Su programa solo puede tomar una entrada: un número, que se asemeja al último a (n) ultrafactorial que se agregará a la suma. Se asegura que la entrada sea positiva o 0.
Salida
Su salida depende de usted, siempre y cuando exista la suma visible de los números en alguna parte.
Reglas
- Puede asumir todos los enteros, por lo tanto, la entrada de enteros y el uso de bucles de conteo de enteros para producir algunos resultados.
Casos de prueba
Input: -1
Output: Any kind of error (because -1! is undefined), or no handling at all
Input: 0
Output: 1
Input: 1
Output: 2
Input: 2
Output: 6
Input: 3
Output: 46662
Reto
Este es el código de golf , por lo que gana la respuesta con la menor longitud en bytes.
double
)?Respuestas:
05AB1E , 5 bytes
Código:
Explicación:
Utiliza la codificación CP-1252 . Pruébalo en línea!
fuente
L!DmO
También funciona si desea quitar el bit de "codificación CP-1252".Mathematica, 19 bytes
Disculpas por el código extremadamente claro;)
fuente
Jalea, 6 bytes
Pruébalo en línea!
fuente
‘
, por lo queR!*`S‘
guarda un byte (fui por‘Ḷ!*`S
).R -
3430 bytesvectorizar es bueno
editar: guardado 4 bytes gracias a @MickyT
fuente
x=factorial(0:scan());sum(x^x)
J
1512 bytes¡Guardado 3 bytes gracias a millas!
Explicación
Casos de prueba
fuente
1#.i.^~@!@,]
Afeita unos pocos bytes más.1#.
realiza la sumatoria. Si eso no es un consejo, ¡definitivamente deberías agregarlo!Perl 6 ,
413837 bytes( Pruébelo en línea )
Explicación:
for 0 .. $_
: Para cada entero desde 0 hasta la entrada,[*](1 .. $_) xx 2
: calcular el factorial dos veces,[**] ...
: y exponga los dos factoriales idénticos.[+] ...
: Luego suma todos los resultados del ciclo.Gracias a b2gills por 1 byte.
fuente
([*] …)
puede escribirse como[*](…)
guardar un byteCheddar ,
4437 bytes¡Gracias a las cabras por reducir el operador! Creo que hubiera sido una buena idea agregar factorial
Pruébalo en línea
Sin golf
Explicación
Nota: Un poco desactualizado, arreglará
fuente
MATL , 7 bytes
Pruébalo en línea!
Explicación
fuente
PHP, 49 bytes
INF
paran>5
en un sistema de 64 bits.para grandes números, 70 bytes
requiere que PHP se compile con
--with-gmp
fuente
Rubí,
6466 bytesSe agregaron dos caracteres para la corrección de errores off-by-one (buscará acortar las llamadas de inyección más tarde).
fuente
a=(0..i)
lugar dea=(1..i)
?+1
es la mejor solución.Pyth -
98 bytesTest Suite .
fuente
Haskell,
6756 bytesTenga en cuenta que esta presentación se realizó antes de que se eliminaran las reglas que prohibían las construcciones incorporadas.
Por ejemplo:
fuente
Python 2,
7372 bytesfuente
PARI / GP , 19 bytes
fuente
R, 42
35bytesAhora que leí la pregunta correctamente, puse la suma.
Esto requiere que la biblioteca gmp (aritmética de precisión múltiple) esté disponible. Esto permite manejar grandes cantidades. De lo contrario, algo más de 5 vuelve
INF
.Esto se implementa como una función sin nombre para evitar lo
as.character
que se requeriría para enviar a STDOUT a través decat
Ejecución de ejemplo
f (9) funcionará bastante bien, pero llena varias páginas. Unos cientos más o menos y 2.017.528 dígitos. f (10) mata la sesión en mi máquina.
fuente
factorialZ(0:x)
. ¿Hay alguna razón específica para no usar labase::factorial()
función?gmp::factorialZ
para manejar los grandes números.JavaScript (ES7), 38 bytes
fuente
Pyke, 11 bytes
Pruébalo aquí!
Dato curioso: ¡Pyke no tiene un factorial incorporado porque
SB
solo tiene 2 bytes!fuente
Haskell, 43 bytes
Ejemplo de uso:
a 3
->46662
.b
calcula un solo ultrafactorial ya
suma todos los ultrafactoriales de0
an
.fuente
JavaScript (ES7), 44 bytes
fuente
Python 2, 82 bytes
fuente
range(input())
esto para eliminar algunos bytesMaravilla , 33 bytes
Uso:
Explicación
Crea un rango inclusivo de 0 a entrada.
Asigne el rango con una función que 1) calcula el factorial del elemento, 2) almacena el resultado
f
y 3) calculaf^f
.Suma.
fuente
TI-Basic, 13 bytes
PS Se puede reemplazar
sum(seq(
conΣ(
si usted tiene un sistema operativo más reciente (sin cambio de tamaño).fuente
Lenguaje GameMaker, 97 bytes
Función principal (52 bytes)
Función f (45 bytes)
fuente
Ruby 2, 41 bytes
fuente
s
al mismo tiempo que se pasa comot
valor inicial para reducir / inyectar.->n{((t=s=1)..n).map{|i|t+=(s*=i)**s};t}
o->n{t=s=1;(1..n).map{|i|t+=(s*=i)**s};t}
Dyalog APL, 10 bytes
¿Cómo?
⍳
rango de entrada0,
precedido por 0!*!
aplicarx! ^ x!
+/
sumafuente
*
y!
son funciones escalares, así que use matrices:+/*⍨!0,⍳⎕
o(+/!*!)0,⍳
si realmente quiere un tren.Mathematica, 19 bytes
Función anónima. Toma un número como entrada y devuelve un número como salida.
fuente
Brachylog , 12 bytes
Pruébalo en línea!
Explicación
fuente
C #, 79 bytes con salida de consola
C #, 64 bytes como retorno
fuente
En realidad
1110 bytesCómo funciona
fuente
Raqueta 54 bytes
Sin golf:
Pruebas:
Salida:
fuente