CodeIQ「フィーバー・ナンバー」問題 みんなのコード

■ 問題 平方数でない数で、平方根を小数表示したときに、小数第1位から第6位に同じ数字が並ぶもっとも小さな整数を求めてください。 https://codeiq.jp/ace/kawazoe/q1355
2
Kawazoe @riverplus

CodeIQの「フィーバー・ナンバー」問題、明日で公開終了です。よければ明日以降 #フィーバーナンバー のタグで皆様のコードを公開して下さい!

2015-03-19 23:31:43
angel (as ㌵㌤の猫) @angel_p_57

締め切りを過ぎたので、ネタバレを。「10の6乗÷16を超える数の中で最も小さい、n≡-1 mod 81 を満たすnに対し、s=(n*n-1)/81 なる s が答え」シンプルにO(1)で想定外評価を頂いた。#フィーバーナンバー #CodeIQ

2015-03-20 10:19:19
angel (as ㌵㌤の猫) @angel_p_57

@angel_p_57 なお、詳細はこちら。BF👺的驚きはないのでそのように。 ideone.com/hf4wVS C99で実装…だけど、割とコードそのものは重要では無かったり。

2015-03-20 10:22:09
angel (as ㌵㌤の猫) @angel_p_57

@ciel0codeiq 有難うございます。ってそれは…。てれますねえ…。hanakappa.jp/chara01.html#t…

2015-03-20 21:01:58
しえる@CodeIQ @ciel0codeiq

@ciel0codeiq 誤って7桁でideoneにアップロードしていました。7桁だとTLEしますが、6桁だとTLEしません。#フィーバーナンバー

2015-03-20 23:45:30
Kawazoe @riverplus

「フィーバー・ナンバー」問題のこれまでのみんなのコードをまとめました。公開して下さっている方ありがとうございます!引き続きコード募集中です togetter.com/li/797476 #フィーバーナンバー

2015-03-20 23:27:19
Kawazoe @riverplus

想定解は、小数点以下6桁がゾロ目になるような数を一つずつ列挙し、それを2乗して整数の入るべき範囲を決めるというやり方です。ラフには、2乗した値の近くの整数を候補とするやり方でもOKです。それにしても @angel_p_57 さん @haruya1212 さんのやり方は衝撃でした

2015-03-20 23:36:09
idiotton @idiotton

アルゴリズム的には最速だと思うが、もっと速いのあるかな。 ideone.com/AU18me #フィーバーナンバー

2015-03-20 23:34:54
idiotton @idiotton

自分が解いたのは、平方根の整数部の mod 9 の値が同じものに着目すると、それぞれの値に対して直接的に最小値が求まるというもの。考え方はあまり綺麗ではない。(´・ω・`) #フィーバーナンバー #CodeIQ

2015-03-20 23:42:57
idiotton @idiotton

@idiotton どうも最速では無いようだ。もっと綺麗に考えられないとダメだな。(ヽ´ω`)ハァ…  #フィーバーナンバー

2015-03-20 23:52:12
Kawazoe @riverplus

あと @idiotton さんの解法も早くて素敵。

2015-03-20 23:38:32
seizh @SeizhLab

どうも上がってるコードで一番コンパクトだが一番遅いな #フィーバーナンバー いやそもそもRubyって元々速いコード書くための言語じゃないし(←という言い訳)

2015-03-21 00:44:58
bun_CodeIQ @bun_codeiq

「フィーバー・ナンバー」問題は今回も昨日の朝ぎりぎりで Brute Forceで解いてみました。コードはお粗末なのでお見せしませんが、NGにならなかったようです。

2015-03-21 08:24:37
えちごやえちぜん @echigoyaechizen

@riverplus 「🆚で動いて🆔で動かない」解析に時間がかかってしまいました。 得られた知見は「Doubleのxに対しMath.Sqrt(x)の代わりに x^0.5を使うと不幸になる」という事らしいです。

2015-03-21 21:52:21