Ungefähre Fransén-Robinson-Konstante


9

Geben Sie bei einer Eingabe nden Wert der Fransén-Robinson-Konstante mit nZiffern nach der Dezimalstelle mit Rundung aus.

Regeln

  • Sie können davon ausgehen, dass alle Eingaben Ganzzahlen zwischen 1 und 60 sind.
  • Sie dürfen keine verwandten Werte speichern - die Konstante muss berechnet und nicht abgerufen werden.
  • Die Rundung muss nach folgenden Kriterien erfolgen:
    • Wenn die Ziffer nach der letzten Ziffer kleiner als fünf ist, muss die letzte Ziffer gleich bleiben.
    • Wenn die Ziffer nach der letzten Ziffer größer oder gleich fünf ist, muss die letzte Ziffer um eins erhöht werden.
  • Sie müssen nur die ersten n+1Ziffern ausgeben .
  • Es gelten Standardlücken.

Testfälle

>>> f(0)
3

>>> f(1)
2.8

>>> f(11)
2.80777024203

>>> f(50)
2.80777024202851936522150118655777293230808592093020

>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005

>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055

Was ist, wenn Sie keine Unterstützung für beliebige Präzisions-Floats haben?
Fehler

1
@flawr Ich nehme an, dass die Sprache irgendeine Form der String-Verkettung oder ähnliches verwenden müsste. Andernfalls ist es möglicherweise nicht die Sprache für diese Herausforderung.
Addison Crump

Schade, das lässt uns im Grunde nur die Zahlen fest codieren. PS: Warum fügst du nicht f(60)zu den Testfällen hinzu? Auf diese Weise müssten die Teilnehmer es nicht extern
abrufen

@flawr Hardcoding ist von Regel 2 nicht erlaubt.
Addison Crump

Sind nachgestellte Nullen in Ordnung?
Mego

Antworten:


7

Mathematica, 44 39 36 25 UTF-8 Bytes

  • -5 Bytes dank Sp3000
  • -3 Bytes dank kennytm
  • -11 Bytes dank Senegrom

Durchgestrichen 44 ist immer noch regulär 44 !!

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

Beispiel:

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

Ausgänge 2.81.

Erläuterung

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

Der erste Schritt übernimmt Nden Rest mit #(erster Parameter) + 1 Genauigkeit. !(Fakultät) macht das, was Sie erwarten würden. {x, -1, Infinity}legt die Grenzen für das (seltsam formatierte) Integral fest.


Ich kann das nicht testen, also nehme ich diese Runde richtig an?
Addison Crump

1
@VTCAKAVSMoACE Ich habe nachgesehen n = 60, es rundet richtig. (Die 61erste Ziffer ist eine 8). Sie können in Wolframs Dokumenten nachsehen N.
NoOneIsHere

Coolio. Ich überprüfe nur.
Addison Crump

Sie können wahrscheinlich ein Literal anstelle von verwenden Infinity. Ich würde vorschlagen, durch 0 zu teilen, wenn das nicht ComplexInfinitystattdessen produzieren würde ...
Sp3000

1
versuchen Sie, N[∫1/x!{x,-1,∞},#+1]&wo Unicode-F74C ist; wird wie 𝕕in Mathematica angezeigt . (Beachten Sie, dass der Platz vor &auch nicht notwendig ist ...)
Senegrom
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.