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