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]&où 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.