月別アーカイブ: 2006年6月

津田沼のフレンチレストラン

ホント実家の周りのレストランは混んでいる。どこも予約でいっぱいだったりする。なんであんな外食文化なんだあの辺りは。とりあえず対策として少し離れたところまで車で行ってみた。

本日はフレンチレストラン。

http://www.mamoruya.com/chezcomo/index.htm

値段はコースで3,900円〜6,800円程度だったはず。正直内容の割には高めの印象だったが、それでもオードブルに出た真鯛のカルパッチョなんてレベルは高かった。フォアグラは最近までフランスから輸入禁止だった影響か、味がイマイチ。車だったから飲めなかったけど、赤ワインにぴったり合いそうな牛肉の赤ワイン煮込みなんかも食べました。

まずまずかな。

高安秀樹「経済物理学の発見」

経済物理学の発見 (光文社新書)

経済物理学の発見 (光文社新書)

やばい。なんだこの本、滅茶苦茶面白かったぞ。久しぶりに味わったこの知的興奮。是非とも皆さんも味わいなされ。たったの760円、250ページ強ですから。

本書は経済現象(本書では主に為替の変動を扱っている)を物理学的手法による解明を試みる新しい分野、経済物理学(エコノフィジックス)について解説した本である。フラクタル、ベキ分布、カオス。物理学者の目から見れば、経済情報の中に物理現象と似た現象が頻繁に観察出来る。そしてある経済的な問題(例えばインフレとかバブルとか)に対する解法も、物理学的手法により導き出せる可能性がある。そういった「経済を研究している物理学者」のお話である。

個人的な話になってしまうが、「経済物理学」という言葉を初めて知ったときは嬉しかった。「人間の行動をマクロに見たときに、物理の法則に似たある決まった動きが見られるのではないか」という考えをずっと持っていたからだ。そのことについて考えるとき、大学で勉強した統計力学を思い出したものだが、その考え方があながち間違っていなかったこともこの本を読んで分かった。さらに経済学を学ぶと誰もが抱く「そんな上手いこといくんかいな」的なもやもや感を見事に祓ってくれる可能性のある学問であることもこの本を読めば分かる。今まで読んだ経済学の本とはすっきり度が違う。この感動を無くさないうちに、高安先生の他の書籍にも手を出したいところだ。

この分野のさらなる発展を望む。

スライシングで遊ぶ

スライシングも非常に便利。リストや文字列に対して使えます。文字列の処理なんかには重宝しそうです。

とりあえず使ってみましょう。

また標準出力から文字列を読み取り、受け取った文字列の8文字までを結果として返す関数と、9文字目以降を*でマスクして返す関数を作ってみる。

cutletters.py

def cutletters(s,x):
return s[:x]
def maskletters(s,x):
cutlength = len(s) - x
if cutlength > 0:
s = s[:x]
s = s + '*' * cutlength
return s
else:
return s
while(1):
s = raw_input()
if s == '':
break
print cutletters(s,8)
print maskletters(s,8)

実行すると以下のようになる。

C:\Python24>python.exe cutletters.py
Michael Jordan
result1 : Michael
result2 : Michael ******
abcdefghijklmnopqrstu
result1 : abcdefgh
result2 : abcdefgh*************
hatena
result1 : hatena
result2 : hatena

マスクの方はもう少しスマートな書き方があるのかも。

追記:

こうすればもっとスマートだ。うん。リスト万歳。

def maskletters(s,x):
L = list(s)
L[x:] = ['*'] * (len(s) - x)
return ''.join(L)

Map関数を使ってみよう

僕のプログラミング経験にはMap関数に値するものは出てこなかった。非常に便利な機能である。さっそく使ってみよう。

n個の中からx個を取り出すときの組み合わせを求める関数を以下のように定義する。

def factorial(x):
if x == 1:
return 1
else:
return x * factorial(x - 1)
def combination(x,n):
return factorial(n) / (factorial(n - x) * factorial(x))

map関数を用いて以下のように実行すると、5個から3個、8個から4個、10個から5個の計算結果をリストの形でいっぱつで返してもらうことが出来る。

>>> map(combination,[3,4,5],[5,8,10])
[10, 70, 252]

うーん便利。コード書く量大分減らせそう。

David A. Vise「The Google Story」

The Google Story

The Google Story

Google本ブームに乗っかって、適当な洋書を買ってみた。

表題に偽りなしというか、本当にGoogleの物語。ラリーとペイジの出会い、PageRankのアイデア、投資、起業、世界中への拡がり、ビジネスモデルの完成、IPO、中国問題など、ほぼ時系列にGoogleが辿ってきた道筋について書かれている。雑誌の記事に近い文章で、著者が考えなどは書かれていない(著者はワシントンポスト紙の記者みたい)。かなり細かく章立てされていて、300ページの中に26章もある。

「Googleの動きは新聞やブログで常にチェックしてるよ」という人であれば、目新しいことも何も書いていないし、読む必要はないと思う。「Googleに最近興味が出てきたので、今までの軌跡を知りたい」という人であれば、英語の勉強も兼ねてご一読どうぞ。一つの章がすごく短いので、集中力を保って読めますよ。表現も易しいです。

なぜか巻末にGLATテストがくっついてます。

追記:

どうやら後日、翻訳版が発売された模様。「Google誕生 ?ガレージで生まれたサーチ・モンスター」というタイトルで発売中ですので、良かったどうぞ。