r
0と1の間の浮動小数点数と整数がありp
ます。
r
少なくともp
-桁の精度で近似する最小の分母を持つ整数の割合を見つけます。
- 入力:(
r
浮動小数点数)およびp
(整数)。 - 出力:
a
とb
整数、どこa/b
(floatとして)桁r
まで近似しp
ます。b
そのような正の整数の可能な最小のです。
例えば:
- 場合
r=0.14159265358979
とp=9
、 - そして結果は
a=4687
andb=33102
、 - なぜなら
4687/33102=0.1415926530119026
。
理論的には、任意のソリューションは任意精度型で機能する必要がありますが、実装の固定精度型によって引き起こされる制限は問題になりません。
精度とは、「0.
」の後の桁数を意味しr
ます。したがって、との場合r=0.0123
、p=3
でa/b
始まる必要があり0.012
ます。p
の小数部の最初の桁r
が0の場合、未定義の動作は許容されます。
勝利基準:
- アルゴリズム的に最も速いアルゴリズムが優先されます。速度はO(p)で測定されます。
- 最速のアルゴリズムが複数ある場合は、最短のアルゴリズムが優先されます。
- 私の回答は、勝者候補から除外されています。
Ps数学の部分は実際にはかなり簡単に見えるので、この投稿を読むことをお勧めします。
padEnd
and をいじっているのですmatch
か?slice
各文字列を正しい長さにしてから差し引くことはできませんか?