Nous savons tous que le nombre d'Euler , noté e, à la puissance d'une variable x, peut être approximé en utilisant l' expansion de la série Maclaurin :
En laissant x égal à 1, on obtient
Défi
Écrivez un programme dans n'importe quelle langue qui se rapproche du nombre d'Euler en prenant une entrée N et calcule la série au N-ème terme. Notez que le premier terme a le dénominateur 0 !, pas 1 !, c'est-à-dire que N = 1 correspond à 1/0 !.
Notation
Le programme avec le moins d'octets gagne.
code-golf
math
number
approximation
Meow Mix
la source
la source
N
Si les valeurs sont suffisamment grandes, les résultats seront les mêmes si vous utilisez un nombre à virgule flottante de précision finie. Ce comportement est-il acceptable ou le résultat doit-il progressivement devenir plus précis à l'N
approche de l'infini?Réponses:
Gelée , 5 octets
Essayez-le en ligne!
Comment ça fonctionne
la source
Ḷ
, ce qui fait une gamme [0, n) . ^ v ^;Wistful-C - 336 octets
Mon premier vrai programme mélancolique! Il y a en fait un peu de golf que j'ai fait, en utilisant
someday
au lieu dewait for
parce que le premier avait une longueur plus courte.la source
<stdio.h>
someday i were N...
au lieu desomeday i will be N...
?Pyth,
76 octetsEssayez-le ici.
Merci à FryAmTheEggman pour un octet!
la source
TI-84 BASIC,
121514TI est un langage à jetons (les octets sont comptés via des jetons , pas des caractères individuels).
la source
Ans
n'est pas un format d'entrée valide, donc seule la version à 15 octets est valide.Ans
a toujours été le format d'entrée par défaut ici chez PPCG (regardez mes anciennes réponses TI), et plus de gens sont d'accord que pas d'accord, alors ne vous laissez pas intimider pour changer votre réponse.Julia,
282721 octetsIl s'agit d'une fonction anonyme qui accepte un entier et renvoie un flottant. Pour l'appeler, affectez-le à une variable.
L'approche est assez simple. Nous
sum
1 divisé par la fonction gamma évaluée à chacun de 1 à n . Cela profite de la propriété n ! = Γ ( n +1).Essayez-le en ligne!
Enregistré 1 octet grâce à Dennis et 6 grâce à Glen O!
la source
@(n)sum(1./factorial(0:n))
Python, 36 octets
Python 2:
Python 3:
la source
or
lieu deand
:f=lambda n,i=1:i>=n or 1+f(n,i+1)/i
.dc, 43 octets
Il s'agit d'une traduction assez directe de la série. J'ai essayé d'être plus intelligent, mais cela a abouti à un code plus long.
Explication
Une fonction factorielle simple, pour n> 0
Exécutez la factorielle pour n, ..., 1; inverser et additionner
Amorcez la pile avec 1; accepter l'entrée et définir une précision appropriée
Si l'entrée était 0 ou 1, nous pouvons simplement la transmettre, sinon calculer la somme partielle.
Imprimez le résultat.
Résultats de test
Les 100 premières extensions:
En utilisant 1000 termes:
la source
J, 10 octets
Approche directe.
Explication
la source
1#.%@!@i.
CJam, 11
ou
Essayez-le en ligne: première version et deuxième version
Explication:
r~
= lire et évaluerm!
= factorielW#
= monter à -1 puissance (W
= -1):+
= somme du tableau Lapremière version construit le tableau [0… N-1] et applique le factoriel et l'inverse à tous ses éléments; La 2ème version fait factorielle et inverse pour chaque nombre puis les place dans un tableau.
la source
JavaScript ES6,
44 4240Une fonction sans nom maintenant.
Merci d'avoir sauvé 2 octets @AlexA et merci à @LeakyNun pour encore 2 octets!
la source
n=>{for(k=s=m=1;m<n;s+=k/=m++);return s}
MATL,
117 octets4 octets économisés grâce à la recommandation de @ Luis d'utiliser
gamma
(Yg
)Essayez-le en ligne
Explication
la source
]
1i:Yg/s
pour 7 octetsMATL , 6 octets
Ceci calcule la somme en utilisant la fonction hypergéométrique 1 F 1 ( a ; b ; z ):
Fonctionne sur Octave et sur le compilateur en ligne, mais pas sur Matlab, en raison d' une différence dans la définition de la fonction hypergéométrique (qui sera corrigée).
Essayez-le en ligne!
Explication
la source
C, 249 octets
Non golfé:
Prend un nombre comme argument pour déterminer le nombre d'itérations.
la source
int
avantmain
et dureturn 0
. De plus, si vous remplacezNULL
par0
, vous n'avez pas besoin des inclusions.argc
etargv
peut être raccourci en variables à lettre unique. Si vous aimez jouer au golf en C, les conseils pour jouer au golf en C pourraient vous être utiles.#include <stdio.h>
k (13 octets)
Sous réserve de débordements pour
N>20
la source
05AB1E, 6 octets
Expliqué
Essayez-le en ligne
la source
L<!zO
.Pyke, 10 octets
Essayez-le ici!
Ou 8 octets si puissance = 1
Essayez-le ici!
la source
JavaScript (ES6), 28 octets
la source
Dyalog APL , 6 octets
+/
somme des÷
inverses des!
factorielles des⍳
nombres de 0 à⎕
l'entrée numériqueSuppose
⎕IO←0
, qui est par défaut sur de nombreux systèmes.TryAPL !
la source
Haskell, 37 octets
Pas le plus court, mais sans doute le plus joli.
Avec l' aimable autorisation de Laikoni , voici une solution plus courte de 2 octets :
la source
50
. Pour ajouter un en- tête, utilisez:## Language, <xxx> bytes
.f n=
ou\n->
obtenir une soumission de fonction valide. Cependant, nous pouvons également économiser quelques octets:(\x->1/x)
peut être raccourci à la section(1/)
,[1,2..]
est identique[1..]
etmap(...)$
peut l'être(...)<$>
. Ensemble 36 octets: essayez-le en ligne!((scanl(+)0$(1/)<$>scanl(*)1[1..])!!)
ça a l'air bien aussi.\n->
pour créer une fonction.APL (Dyalog Unicode) , 5 octets
Essayez-le en ligne!
En utilisant l'astuce de base mixte trouvé dans ma réponse d' un autre défi . Utilise
⎕IO←0
.Comment ça fonctionne
la source
1÷(n-1)!
va un chiffre? Pourriez-vous le traduire en J pour clarifier?En fait, 6 octets
Essayez-le en ligne!
Explication:
la source
Brachylog , 18 octets
Explication
la source
Érable, 18
Usage:
la source
C, 69 octets
Ideone it!
la source
Java avec pôle laser de dix pieds ,
238236 octetsA une bien meilleure résistance aux débordements que la plupart des autres réponses. Pour 100 termes, le résultat est
la source
Julia, 28 octets
Explication
gamma(k+1)
est égal àfactorial(k)
pour les entrées entières positives et le généralise pour toutes les valeurs autres que les entiers non négatifs. Il enregistre un octet, alors pourquoi ne pas l'utiliser?la source
MATLAB / Octave, 22 octets
Crée une fonction anonyme nommée
ans
qui peut être appelée à l'aide deans(N)
.Cette solution calcule
gamma(x)
pour chaque élément du tableau [1 ... N] qui est égal àfactorial(x-1)
. Nous prenons ensuite l'inverse de chaque élément et additionnons tous les éléments.Démo en ligne
la source
Perl 5, 37 octets
Pas un gagnant, mais gentil et simple:
Sorties pour entrées de 0 à 10:
la source
R, 17 octets
Assez simple, bien que des problèmes de précision numérique surgissent à un moment donné.
la source
WolframAlpha , 12 octets
la source