Approximer la constante de Fransén-Robinson


9

Étant donné une entrée n, sortir la valeur de la constante de Fransén-Robinson avec des nchiffres après la décimale, avec arrondi.

Règles

  • Vous pouvez supposer que toutes les entrées sont des entiers compris entre 1 et 60.
  • Vous ne pouvez pas stocker de valeurs associées - la constante doit être calculée et non rappelée.
  • L'arrondi doit être effectué selon les critères suivants:
    • Si le chiffre suivant le dernier chiffre est inférieur à cinq, le dernier chiffre doit rester le même.
    • Si le chiffre suivant le dernier chiffre est supérieur ou égal à cinq, le dernier chiffre doit être incrémenté de un.
  • Vous ne devez sortir que les premiers n+1chiffres.
  • Des échappatoires standard s'appliquent.

Cas de test

>>> f(0)
3

>>> f(1)
2.8

>>> f(11)
2.80777024203

>>> f(50)
2.80777024202851936522150118655777293230808592093020

>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005

>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055

Que se passe-t-il si vous n'avez pas de support pour les flotteurs de précision arbitraires?
flawr

1
@flawr Je suppose que le langage devrait utiliser une forme de concaténation de chaînes ou similaire. Sinon, ce n'est peut-être pas la langue de ce défi.
Addison Crump

Dommage, cela ne nous laisse essentiellement qu'avec le codage en dur des chiffres. PS: Pourquoi n'ajoutez-vous pas f(60)aux cas de test? De cette façon, les participants n'auraient pas à aller le chercher à l'extérieur =)
flawr

@flawr Hardcoding est interdit par la règle 2.
Addison Crump

Les zéros de fin sont-ils corrects?
Mego

Réponses:


7

Mathematica, 44 39 36 25 octets UTF-8

  • -5 octets grâce au Sp3000
  • -3 octets grâce à kennytm
  • -11 octets grâce à senegrom

Barré 44 est toujours régulier 44 !!

N[∫1/x!{x,-1,∞},#+1]&

Exemple:

f=N[∫1/x!{x,-1,∞},#+1]&
f[2]

Sorties 2.81.

Explication

N[               , # + 1] 
  ∫1/x!{x,-1,∞}

La première étape prend l' Numérique du reste, avec #(premier paramètre) + 1 précision. !(factorielle) fait ce que vous attendez. {x, -1, Infinity}définit les limites de l'intégrale (étrangement formatée).


Je ne peux pas tester cela, donc je suppose que ces tours sont corrects?
Addison Crump

1
@VTCAKAVSMoACE J'ai vérifié n = 60, il arrondit correctement. (Le premier 61chiffre est un 8). Vous pouvez consulter les documents de Wolfram pour N.
NoOneIsHere

Coolio. Je vérifie.
Addison Crump

Vous pouvez probablement utiliser un littéral à la place de Infinity. Je suggérerais de diviser par 0, si cela ne produisait pas à la ComplexInfinityplace ...
Sp3000

1
essayez N[∫1/x!{x,-1,∞},#+1]&est Unicode-F74C; s'affiche comme 𝕕dans Mathematica. (notez que l'espace avant &n'est pas non plus nécessaire ...)
senegrom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.