2009-09-01から1ヶ月間の記事一覧
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=257 図形の問題かと思いきや、ちょっと計算すると、単なる整数の問題であることがわかる。 from itertools import imapdef gen_triangle(s_limit): for b in range(1, s_limit …
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=96 最後に残しておいた問題、それがこのナンプレとか数独とか呼ばれるパズルを50問解く問題。元々これを解くPythonのプログラムは作ってあったのだが、そのためにかえってどう…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=256 ゴールが見えていて(純粋にプログラミングの問題になって)これだけ苦しめられたのは、どの問題以来だっただろうか。昨夜寝ながら考えていて(寝不足になった)、畳を敷き…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=256 畳の敷き詰め方。これは難しいのではないかと思う。今のところ何も思いついていない。とりあえず、7×10は敷き詰められないことは以下のコードで確かめられる。
800mを10本、400mでつなぐ。そして、800mを4分で走れたらフルマラソン4時間、3分なら3時間で走れるという目安に使われるらしい。恐らく、計算が苦手なアメリカ人のために開発されたのだろう。いくつかのブログを見ていても、この設定タイムは甘い。予約シス…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=210 これにもやはり数値計算上のトラップが。この問題は、おおざっぱに言うと、円の内側にある格子点の個数を数える。例えば、xy平面を考えて、中心が原点で半径rが10だとする…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=177 意外なトラップが。 角度を求めるのにasinを使ったのだが、 asin(1.0) = π / 2 となるところが、大きく値がずれて、10-9のトレランス内に入らずに整数の角度の組から落ちて…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=219 Outstanding, inamori! You have advanced to the highest level possible. ということで、おそらく最後のレベルアップをした。世界で98番目。ここまで長かった。あと5問。…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=255 この問題はやさしい。 例題をふつうに書くと、 def div_ceil(n, d): return (n + d - 1) / ddef f(n, x): return (x + div_ceil(n, x)) / 2def count(n): counter = 1 x0 =…
でかけようとすると、すごい雨が降ってきた。これで本当に行われるのだろうか。とりあえず、行ってみる。雨でモチベーションが下がってしまった。 火曜日に膝に違和感が出て、水曜日にインターバル走で最後の仕上げをするという予定をキャンセルしてしまった…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=180 この問題は、ちょっと計算すればフェルマーの大定理が使えることがわかって(あまり本質的な意味はないと思うが)、後は雑に計算しても答えが出る。 フェルマーの大定理 n …
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=213 これ、ずっと分からなかったんだけど、シャワー浴びてて気がついた。一匹ずつ追加していけばよかったんだ。これで非常に簡単になる。別に半分に分ける必要も無かった。
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=253 なんとか答えが出た。結局、最初に考えた方針でやった。 いつものパターンで、状態とそこに至る経路数(と最大のセグメント数)を数えていけばいい。しかし、完全な状態を…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=254 最後、簡単だった。 最初はfの引数を1つずつ大きくしていってgを決めていったが、例えば342は234でいいので、ソートした配列を使うようにした。これで60くらいまではいける…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=254 問題の意味はすぐにわかるが、今のところ手がかりがない。20までなら素直に書けばよい。 from itertools import imap, count from math import factorialdef gen_digit(n):…
総合運動公園のAコース(1.44km)×3+Bコース(0.62km)だから、正確には4.94km、のはず。 dist time /km 1.44 6:13.87 4:19.63 1.44 6:19.13 4:23.28 1.44 6:09.79 4:16.80 0.62 2:23.50 3:51.45 - 4.94 21:06.29 4:16.33最後以外ちょっと楽目に走ったけど…