2011-04-01から1ヶ月間の記事一覧

1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か?

http://projecteuler.net/index.php?section=problems&id=26 問題。 1000未満の正の整数dについて、1/dの循環節の長さが最大となるものは何か? 結構悩んだ。下参照。 http://ja.wikipedia.org/wiki/%E5%BE%AA%E7%92%B0%E5%B0%8F%E6%95%B0 素数の倍数同士は…

桁数1000になる最小のフィボナッチ数は何番目

http://projecteuler.net/index.php?section=problems&id=25 問題。 桁数1000になる最小のフィボナッチ数は何番目。 普通に再帰だと遅かったので、辞書を使う。 # -*- coding:utf-8 -*- fib = {1:1,2:1} def Fibonacci(n): if n in fib.keys(): return fib[n…

中日サヨナラエラー ヤクルト中日2回戦

youtubeみっけ。 http://www.youtube.com/watch?v=BLp3mWSlVTY 投手、1塁手、3塁手がバント処理にダッシュ。 荒木は投球開始より早く3塁に走りだす しかし途中でランナーに抜かれる鈍足。 投球後、井端は何故か2塁前から1塁に走る。 谷繁は投手に1塁送球を指…

20世紀に、月始めである日曜日は何日あるか?

http://projecteuler.net/index.php?section=problems&id=19 問題。 20世紀に、月始めである日曜日は何日あるか? # -*- coding:utf-8 -*- import datetime sum = 0 for y in xrange(1901,2001): for m in xrange(1,13): if datetime.date(y, m ,1).weekday(…

iniファイルをpythonで読む。

ConfigParserというモジュールを使う。 http://www.python.jp/doc/2.5/lib/module-ConfigParser.html test.ini [GENERAL] dataType = A1 [METHOD] lstData=PutDatatest.py # -*- coding:utf-8 -*- import ConfigParser config = ConfigParser.RawConfigParse…

経路上の数字の和の最大値

http://odz.sakura.ne.jp/projecteuler/index.php?cmd=read&page=Problem%2018 本家がエラーってたので日本語訳のwikiから。 問題。 数字を山形に並べて山頂から麓まで降りるとき、経路上の数字の和は最大いくつか? 麓から辿っていくのが簡単に思えた。 下…

碁盤目状路の経路数探索

http://projecteuler.net/index.php?section=problems&id=15 誰もが一度は見たであろう問題。さすがに20*20を手計算で解いた経験はありません。 問題が簡単な分、コードに凝ってみる。再帰+キャッシュ # -*- coding:utf-8 -*- cache = {1:1} def chain(n): i…

ついでに

http://projecteuler.net/index.php?section=problems&id=13 問題。 50桁*100個の整数の総和の頭10桁を求めよ。 # -*- coding:utf-8 -*- s = """37107287533902102798797998220837590246510135740250 46376937677490009712648124896970078050417018260538 74…

三角数の約数の総数

http://projecteuler.net/index.php?section=problems&id=12 問題。 約数の総数が500を超える三角数で最小のものを求めよ。結構手こずった。力技のコードだと計算が終わらなかったので。 約数の総数の導出をいじったら大分現実的な速さになったので、これで…

最大公約数

def Gcd(a,b): return b and Gcd(b, a % b) or a

素数判別

def ChkPn(n): i = 2 while i*i <= n: if n%i == 0: return False i += 1 return True

清一色テンパイを調べるプログラム

作ってみた。シンプルに行こう行こうとしたら、結構キモイ。3時間ギリギリだったし。 # -*- coding:utf-8 -*- import sys mentul =['111', '222', '333', '444', '555', '666', '777', '888', '999', '123', '234', '345', '456', '567', '678', '789'] ans …

排他処理デコレータ

ついでに排他処理やってくれるデコレータも作った。 てか検索すると同じようなデコレータの例がたくさん。 Synchronized.py # -*- coding:utf-8 -*- from threading import Lock lock = Lock() def Synchronized(): def decorator(srcfunc): def dstfunc(*ar…

排他処理もやって見る

from threading import Thread, Semaphore, Lock import time semaphore = Semaphore(1) lock = Lock() 〜〜中略〜〜 def run(self): self.n = 1 while True: self.Pause() print self.name,self.n time.sleep(1) self.n += 1 def Pause(self): #semaphore.a…

threading.Threadを使うとスレッドが作れる

# -*- coding:utf-8 -*- from threading import Thread import time class threadtest(Thread): def __init__(self,name): Thread.__init__(self) self.setDaemon(True) self.name = name def run(self): self.n = 1 while True: print self.name,self.n tim…

日本原子力学会誌ATOMOΣ 3月号

ATOMOΣ Vol.53 201103号 日本原子力学会誌 なぜか今頃届いたATOMOΣ3月号のネタがタイムリーだったのでメモ。 http://www.aesj.or.jp/atomos/tachiyomi/mihon.html 目次 特集「原子力発電における耐震とは何か」 原子力安全・保安院の10年の歩み フェニックス…