2009-01-01から1年間の記事一覧
プロジェクトオイラー 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最後以外ちょっと楽目に走ったけど…
今日もウェーブスタジアムに行ってきた。 天皇杯の愛知県予選の決勝も兼ねているということもあって、NHKが生中継する。ウォーキングコースをクレーンカメラが塞いでおり、よけて芝生を走っている人を見た。 入場は無料。観客は738人。以前JFLの試合を見たと…
プロジェクトオイラー http://projecteuler.net/index.php?section=problems&id=253 最初、どういう問題なのかさっぱりわからなかった。何度も読んでいるうちに意味が分かってきた。 1〜10のカードがでたらめに手元に積んであって、例えば、3,5,9,2,1,4,8,6,…
プロジェクトオイラー http://projecteuler.net/ 残りは11問。まずまず順調に解けている。全て一から書いているが、だいたいは、前と同じように書いたつもりなのに正しい答えが出た、というパターン。何が悪かったのか分からない。それから、前は苦労して書…
先週と同じ時間に行ったはずなのに、かなり暗かった。雲が出ていたとはいえ。もう夏も終わりだ。 ストレッチして、ポケットを探ると、メモがない。インターバル走の距離とタイムを書いてきたのに。だから単純なインターバル走のほうがいいんだ。 どうしよう…
久しぶりに総合運動公園のAコースを走る前に、はじめてフィットネスサーキットなるものをやってみた。しかし、上半身系のものがほとんど初級者レベル。 昔から上半身鍛えるの苦手なのよね。鍛えたほうが楽に走れるのはわかってるんだけど。 その後Aコースを7…
昨日来た「ランナーズ10月号」に載っていた、時間を計るだけのインターバル走を実践してみた。 最初はハーフのペースで4分、1分半レストジョグ、などとして、段々時間を短くペースを速くしていく。これだと距離がわからなくて済むからいいらしい。といっても…
プロジェクトオイラー http://projecteuler.net/ Q252. 与えられた疑似乱数で500点を発生させる。この500点のうち何点かで構成されて、かつ構成点以外を含まない凸多角形のうち最も大きい面積を求めよ。 最初、どうしていいか分からなかったが、地道にやって…
プロジェクトオイラー http://projecteuler.net/ Q251. (a + b√c)1/3 + (a - b√c)1/3 = 1 とa + b + c ≤ 110,000,000を満たす正の整数の(a, b, c)の組の個数。 定数が最近変わったみたい。 上の式は簡単になるが、そこからが大変。
プロジェクトオイラー http://projecteuler.net/ Q250. {11, 22, 33, ..., 250250250250}の空でない部分集合で、その要素が250で割り切れるものの個数を、下16桁で。 これも前問とほとんど同じ。 nnの250の剰余は、(n%250)kが250で割って1余る最小のkをあら…
プロジェクトオイラー http://projecteuler.net/ Q249. 5000より小さい素数の集合をSとする。その要素の和が素数となるSの部分集合の個数を、下16桁で答えよ。 この問題は易しい。 部分集合の要素の和→個数というマップを作る。和のうち素数のものの個数を足…
プロジェクトオイラー http://projecteuler.net/ Q248. φ(n) = 13!となる小さいほうから15万番目のn。 n = peなら、φ(n) = (p - 1)pe-1で、かつ乗法的である((x, y) = 1なら、φ(xy) = φ(x)φ(y))。 まず、1を引くと13!の約数になる素数を全て求める。その組…
プロジェクトオイラー http://projecteuler.net/ Q247. y = 1 / xとx = 1とy = 0に囲まれた領域に、なるべく大きな正方形を書く。一つ書いたら、残りの領域にまたなるべく大きな正方形を書く。正方形には大きい順に1から番号を振る。また、その正方形の左と…
プロジェクトオイラー http://projecteuler.net/ Q246. 与えられた楕円の外の格子点で、そこから楕円に向かって引いた2本の接線が成す角度が45度より大きいものはいくつあるか。 これも前問と並んで最難問題となっているが、実際には易しい。1点ずつ調べても…
ウェーブスタジアムは清涼の夕べという感じではなかった。 インターバル走。 400(102s)×10 2000 695.44 400 101.64 200 68.62 400 100.27 200 70.32 400 99.63 200 74.96 400 99.39 200 78.23 400 97.96 200 80.80 400 99.02 200 84.47 400 100.11 200 85.37…
プロジェクトオイラー http://projecteuler.net/ Q245. (n - φ(n)) / (n - 1)を約分して分子が1になる、合成数の1 < n ≤ 2×1011の総和を求めよ。 最難問題だそうだが、さほどてこずらなかった。 まず、nを素因数分解してべき乗の項があるとダメなのはすぐに…