Cette question a été retravaillée, veuillez la relire.
Ultrafactoriels
Les ultrafactoriels sont une séquence de nombres qui peuvent être générés à l'aide de la fonction suivante:
a(n) = n! ^ n!
Les valeurs résultantes augmentent extrêmement rapidement. Note latérale: Il s'agit de l'entrée A046882 dans l'OEIS. Les hyperfactoriels sont également liés, une séquence encore assez énorme, mais un peu plus petite: A002109
Ta tâche
Votre tâche consiste à implémenter ces numéros dans votre langue. Votre programme calculera la somme de tous les ultrafactoriels de 0 à inclus n
.
Contribution
Votre programme ne peut prendre qu'une seule entrée: un nombre, qui ressemble au dernier a (n) ultrafactoriel à ajouter à la somme. L'entrée est assurée d'être positive ou 0.
Sortie
Votre sortie dépend de vous, tant qu'il y a la somme visible des nombres quelque part.
Règles
- Vous pouvez supposer tous les nombres entiers, donc les entrées entières, et utiliser des boucles de comptage d'entiers pour produire des résultats.
Cas de test
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
Défi
C'est le code-golf , donc la réponse avec le moins de longueur en octets l'emporte!
double
)?Réponses:
05AB1E , 5 octets
Code:
Explication:
Utilise l' encodage CP-1252 . Essayez-le en ligne!
la source
L!DmO
fonctionne également si vous souhaitez supprimer le bit "Codage CP-1252".Mathematica, 19 octets
Toutes mes excuses pour le code extrêmement clair;)
la source
Gelée, 6 octets
Essayez-le en ligne!
la source
‘
, doncR!*`S‘
enregistre un octet (j'y suis allé‘Ḷ!*`S
).R -
3430 octetsvectoriser c'est bien
edit: sauvé 4 octets grâce à @MickyT
la source
x=factorial(0:scan());sum(x^x)
J,
1512 octetsÉconomisé 3 octets grâce aux miles!
Explication
Cas de test
la source
1#.i.^~@!@,]
rase encore quelques octets.1#.
effectuer la sommation. Si ce n'est pas déjà une astuce, vous devez certainement l'ajouter!Perl 6 ,
413837 octets( Essayez-le en ligne. )
Explication:
for 0 .. $_
: Pour chaque entier de 0 à l'entrée,[*](1 .. $_) xx 2
: calculer la factorielle deux fois,[**] ...
: et exposer les deux factorielles identiques.[+] ...
: Additionnez ensuite tous les résultats de la boucle.Merci à b2gills pour 1 octet.
la source
([*] …)
peut être écrit comme[*](…)
enregistrant un octetCheddar ,
4437 octetsMerci aux chèvres d'avoir réduit l'opérateur! Je pense que ça aurait été une bonne idée d'ajouter factorielle
Essayez-le en ligne
Non golfé
Explication
Remarque: Un peu obsolète, corrigera
la source
MATL , 7 octets
Essayez-le en ligne!
Explication
la source
PHP, 49 octets
INF
pourn>5
sur un système 64 bits.pour les grands nombres, 70 octets
nécessite que PHP soit compilé avec
--with-gmp
la source
Rubis,
6466 octetsAjout de deux caractères pour le correctif de bug off-by-one (examinera la possibilité de raccourcir les appels d'injection plus tard).
la source
a=(0..i)
au lieu dea=(1..i)
?+1
est la meilleure solution.Pyth -
98 octetsSuite de tests .
la source
Haskell,
6756 octetsNotez que cette soumission a été faite avant la suppression des règles interdisant les buildins.
Par exemple:
la source
Python 2,
7372 octetsla source
PARI / GP , 19 octets
la source
R, 42
35octetsMaintenant que j'ai bien lu la question, j'ai mis la somme.
Cela nécessite que la bibliothèque gmp (arithmétique à précision multiple) soit disponible. Cela permet de traiter de grands nombres. Sinon, plus de 5 retours
INF
.Ceci est implémenté comme une fonction sans nom pour éviter le
as.character
qui serait nécessaire pour sortir vers STDOUT viacat
Exemple d'exécution
f (9) fonctionne plutôt bien, mais remplit un certain nombre de pages. Quelques centaines et 2 017 528 chiffres. f (10) tue la session sur ma machine.
la source
factorialZ(0:x)
. Y a-t-il une raison spécifique pour ne pas utiliser labase::factorial()
fonction?gmp::factorialZ
pour gérer les grands nombres.JavaScript (ES7), 38 octets
la source
Pyke, 11 octets
Essayez-le ici!
Fait amusant: Pyke n'a pas de facteur intégré car il
SB
ne fait que 2 octets!la source
Haskell, 43 octets
Exemple d'utilisation:
a 3
->46662
.b
calcule un seul ultra-factoriel eta
additionne tous les ultra-factoriels de0
àn
.la source
JavaScript (ES7), 44 octets
la source
Python 2, 82 octets
la source
range(input())
cela pour supprimer quelques octetsWonder , 33 octets
Usage:
Explication
Créez une plage inclusive de 0 à l'entrée.
Carte sur la plage avec une fonction qui 1) calcule la factorielle de l'élément, 2) stocke le résultat
f
et 3) calculef^f
.Somme.
la source
TI-Basic, 13 octets
PS Vous pouvez remplacer
sum(seq(
parΣ(
si vous avez un système d'exploitation plus récent (pas de changement de taille).la source
GameMaker Language, 97 octets
Fonction principale (52 octets)
Fonction f (45 octets)
la source
Rubis 2, 41 octets
la source
s
en même temps qu'il le passe commet
valeur initiale à réduire / injecter.->n{((t=s=1)..n).map{|i|t+=(s*=i)**s};t}
ou->n{t=s=1;(1..n).map{|i|t+=(s*=i)**s};t}
Dyalog APL, 10 octets
Comment?
⍳
plage d'entrée0,
précédé de 0!*!
appliquerx! ^ x!
+/
sommela source
*
et!
sont des fonctions scalaires, alors utilisez des tableaux:+/*⍨!0,⍳⎕
ou(+/!*!)0,⍳
si vous voulez vraiment un train.Mathematica, 19 octets
Fonction anonyme. Prend un nombre en entrée et renvoie un nombre en sortie.
la source
Brachylog , 12 octets
Essayez-le en ligne!
Explication
la source
C #, 79 octets avec sortie console
C #, 64 octets en retour
la source
En fait
1110 octetsComment ça marche
la source
Raquette 54 octets
Non golfé:
Essai:
Sortie:
la source