フランセンロビンソン定数の近似


9

入力が与えられたn場合、小数点以下が桁数で丸められたFransén-Robinson定数の値を出力しますn

ルール

  • すべての入力は1から60までの整数であると想定できます。
  • 関連する値を保存することはできません-定数は再呼び出しではなく計算する必要があります。
  • 丸めは、次の基準で行う必要があります。
    • 最後の桁に続く桁が5未満の場合、最後の桁は同じままである必要があります。
    • 最後の桁に続く桁が5以上の場合は、最後の桁を1ずつ増やす必要があります。
  • 最初のn+1桁のみを出力する必要があります。
  • 標準の抜け穴が適用されます。

テストケース

>>> f(0)
3

>>> f(1)
2.8

>>> f(11)
2.80777024203

>>> f(50)
2.80777024202851936522150118655777293230808592093020

>>> f(59)
2.80777024202851936522150118655777293230808592093019829122005

>>> f(60)
2.807770242028519365221501186557772932308085920930198291220055

任意精度の浮動小数点数をサポートしていない場合はどうなりますか?
flawr

1
@flawr言語は何らかの形式の文字列連結または類似のものを使用する必要があると思います。そうでなければ、それはこの課題の言語ではないかもしれません。
アディソンクランプ

残念ながら、基本的には数値をハードコーディングするだけです。PS:なぜf(60)テストケースに追加しないのですか?そうすれば、参加者は外部にフェッチする必要が
なくなり

@flawrハードコーディングはルール2によって許可されていません
Addison Crump

末尾のゼロは大丈夫ですか?
Mego 2016年

回答:


7

Mathematica、44 39 36 25 UTF-8バイト

  • Sp3000のおかげで-5バイト
  • ケニーTMのおかげで-3バイト
  • セネグロムのおかげで-11バイト

取り消し線の44は、まだ通常の44です。

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

例:

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

出力2.81

説明

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

最初のステップはN、残りの数値を#(最初のパラメーター)+ 1の精度で受け取ります。!(階乗)あなたが期待することをします。{x, -1, Infinity}(奇妙にフォーマットされた)積分の境界を設定します。


これをテストすることはできないので、このラウンドは正しく行われると思いますか?
Addison Crump 2016年

1
@VTCAKAVSMoACE私がチェックしたところn = 60、正しく丸められました。(最初の61桁は8)。Wolframのドキュメントをご覧くださいN
NoOneIsHere

クーリオ。チェックしてるだけ。
Addison Crump 2016年

おそらく、の代わりにリテラルを使用できInfinityます。それが生成されない場合は、0で除算することをお勧めしComplexInfinityます...
Sp3000

1
Unicode-F74CはN[∫1/x!{x,-1,∞},#+1]&どこにあるか試してください。𝕕Mathematicaのように表示されます。(前のスペース&も不要であることに注意してください...)
senegrom
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.