2015年03月20日

【Java】フィーバー・ナンバー問題とか

CodeIQさんでフィーバー・ナンバー問題というのが出ました。

どういう問題かというと、平方根取って小数点がゾロ目の数字を求めてね(はぁと
という問題で、出題されたのは下6桁がゾロ目となる最小の数字でした。

平方根をx.aaaaaa...と表すと、元の数字は
x.aaaaaa*x.aaaaaa+α
なので、これを展開して
=xx+0.222222xa+0.012345654321aa+α
となります。
αは無視できるほど小さく、aも0〜9の数字のため、0.012345654321aaも無視できるほど小さい数字になります。
また、0.222222xaは最大でも1.999998xです。

そのため、求める数はxx〜x(x+2)=xx+2xの範囲にあることが明白です。

ちなみにaの数がnであっても、大筋は変わらず、xx+0.(2がn個)xa+αとなりますので、検索範囲はxx+2xです。

問題のほうに4つ並ぶのは5168だよーという記述があるので、√5168=71.8888...よりも大きい数字から探して

を実行すると√48273160=6947.888888...ということがわかりますb
ところで、ちゃんと検証してませんけど、nが3以上のとき、aは常に8なんじゃないかと思います。
posted by バー at 10:13| Comment(0) | TrackBack(0) | CodeIQ | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.seesaa.jp/tb/415939498
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。