Let's take tea break | Code Puzzle
任天堂の採用広報活動のため……とのことだけど、Pythonが使われてて「ほー、任天堂ではPythonも使ってたりするんだ」と思うなど。
それはさておき悩んでいるのはこの問題。与えられた3つの数値をつかって「mに当てはまる数値を答えよ」というところなのだが、べき乗と剰余のからんだ問題で普通に解くのは多分時間がかかる。大学の頃ならすぐ解けそうな問題ではあるのだが……
数値のシーケンスをforでぶっ込むという押せ押せでも解けるだろうけど、何かしらエレガントな回答があると思うんだけどなぁ。
エレガントな回答を出そうと数時間粘ったが、ブルートフォースの方が1分足らずで終わったときの顔をしている
このエントリ書いてる途中で「えいや」で書いたらすぐ終わってもうた……ずっと考えてた時間なんやったん……
ひとまず出てきた数値をいくつか入れてみたけど、一つは次の問題のページに遷移、それ以外は初めの問題のヒントになっているのかな。
初めの問題は数値のシーケンスぶっ込んだほうが早いわな。問題とか回答そのままのせるのはアレなので、自分が書いたところだけ。
# module nintendo # -- encoding: utf-8 -- """苦し紛れのブルートフォース""" def brute_force_search(m): ans = '' for i in xrange(1,m): """lets_take_tea_breakがすでに定義されている関数""" ans = lets_take_tea_break(*[int(x) for x in (i, 17, 3569, 915)]) if ans: print(ans)
一応Githubにもあげていたり。