任天堂が頭を悩ませる

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にもあげていたり。
 

raydive/Nintendo-Code-Puzzle · GitHub