ange1のブログスマートフォン用の表示で見るange1のブログこの広告は、90日以上更新していないブログに表示しています。数学はじめにCodeIQという所で週次で出題される「今週のお題」シリーズに解答しましたので、ネタバレです。今回は次のような問題でした。)」の内、最小の分母を出力する。「n桁までが一致」ではなく、「n桁以上が一致」としないと無理が出るような気がしますので、そのように解釈して解いています。「最小の分母」ですから、尺取り法で分母・分子を相互に増やしていって、初めてn桁一致になるのがいつになるか見ても良いのですが、ちょうど「これは連分数でイけるな」という感覚がありました。よって求めることができます。これを途中で打ち切る訳ですが、「これと別系統で$\pi$に近づく分数があるのでは?」という疑問が湧いてくるかもしれません。これについてはちょっと説明が上手くまとまらないので割愛しますが、連分数の系統以外で近づくものはない、と言えます。一気に一致する桁数が跳ね上がるところがあります。それでは指定された桁数に対して過剰な精度である、言い換えると、もっと小さな分母で十分なのに、大きな分母の数値を計算してしまう可能性があります。この例では292を素直に使ったのが過剰な精度を引き起こした原因であり、最適な精度に調整するには、292の代わりにもうちょっと小さい値を探すことになります。実装ということで、提出版のRubyの実装です。して計算できますので、そのように漸化式を回しています。連分数自体を求めるのは標準の浮動小数点演算でやってますが、もっと精度を要求されるなら、任意精度の数値を使う必要が出て来るでしょう。採用する数字が十分大きければ精度は確保できるため、find-minimumモードでの探索になります。}}[gets.to_i]終わりに今回は、あじさんからこのようなtweetが出ていて、果たして同じ武器を使っているのか...というのが気になっていたのですが。今週の「今週のアルゴリズム」は、○○○を使って解くのが数学的に一番スマートなのではないかと思うけど、これ一般的に知ってる人どれくらいいるのだろうか。自分は去年あたりに本で読んで初めて知って目から鱗だった。2017年1月17日さて。間が空いてしまいました。余裕があれば続けていきたいと思います。今回は再開ということで。)月別アーカイブはてなブログをはじめよう!ange1さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。