帰ってきただらだら日記--

2009-08-06

ペタとかエクサとか最初に言い出したのは誰なのかしら

[Python-ml-jp 4803] アッカーマン関数を計算するからはじまるスレッドが面白かった。 A(4,3) を求めるにはどうしたらいいですか、という話。Weisstein, Eric W. "Ackermann Function." From MathWorld--A Wolfram Web Resource にあるように、この数はとてつもなく大きいのでいま地球にある計算機ではまずムリ。ペタとかエクサとかそんなチャチなもんじゃあ断じてねえもっと恐ろしいものの片鱗を味わったぜ的な

で、そこまでは id:nishiohirokazu さんたちも指摘していることなんだけど、おもしろいなあと思ったのは、そもそも Ackermann 関数が有名なのは、上記の MathWorld 記事の冒頭に書かれてる通りで原始帰納関数でない全帰納関数の具体例だから。そしてその標準的な証明はまさに A(n,n) の大きくなる速さがどんな原始帰納関数より速いということを使う。計算論の教科書にはたいてい載ってる(んじゃないかな)。

それとおもしろいのは、これくらい大きな数はそもそも書く方法がないってこと。A(4,3) あたりでもごにょごにょする。これは、むかしむかしから気になることのひとつで、もっとも気になるといっても、どうすれば気にならなくなるのかわからない話なんだけど、いまのところの突き進め方として私が知ってるのは次の二つ。

  • Ultrafinitism ... 書き下し方がわからんような馬鹿でかい数の存在を証明に使うのは禁止しちゃうよ派
  • 巨大数研究室 ... 悩まずにとにかく大きな数の書き方を考えちゃえ派

んー、たとえば A(4,2) と A(4,3) の間にはだいたい A(4,3) 個くらいの数があるんだけど、それらのほとんどには簡単な表記法がない。いちおう機械的な方法としては Rissanen の universal coding というのがあるにはあるけど、それもねえ。

ちょうど2ちゃん数学板の巨大数スレが熱かったころに生暖かく見守っていたのだけど、結局ふぃっしゅ数の定義を理解することが出来んかったのはいまでも悔しい。途中で数学屋っぽいのが出てきて整理してるのをみて方程式の解として定義してるっぽいことまではわかったんだが、だれか学部の2年生にわかる程度の丁寧さで書いてくれんか。

ということをむかしも書いた気がするけど、まあいいや。忘れっぽいのはステキなことです。そうじゃないですか?

2009-07-20

RubyKaigi2009 での3日目の発表のつづき

もうちょっと考えてみた。

直前の田島さん(とお呼びするのが正しいんでしたっけ)の発表はスクリプティングについて言及していて、私のはスクリプティングのすすめ、みたいな話のつもりだったんだけど、気になるのはこの手のちょっとしたスクリプティングの結果できちゃったコードはどうするのが正しいのか、ということなんである。とくに歯切れのよい回答を持ち合わせてないのでそこまで話せなかった。

だいたいこの手のコードは500Bくらいまではワンライナーだったりするので少なくともシェルの履歴には残ってる。出来たら全部公開してシェアしたいところなんだけど、残念ながら公開できない文字列を抜きにワンライナーを書くほど用心深くもないのでそのままでは公開できない。かといって、その部分を抜くのは結構めんどくさい。そもそも公開するならせめて改行するなどの整形はしないと難読すぎる。

もっと根本的な問題があって、頭の中にはそれなりの数のイディオムのようなものが入っていてそれらにはまあそれっぽい名前をつけることもできるんじゃないかと思っているのだけど、これを組みたてて作ったスクリプトにいい感じの名前を付けるのが大抵は難しい。言い換えれば、ちょっとずつ違うことをたくさんやってる。例には出さなかったけど、railsのコンソール操作なんかもそう。もちろん適当に集めて一般化してしまえば名前を付けるに値するスクリプトになるんだろうけど、そこまでいくことはそんなに多くない。

ただ、現状よりはもう少し高い頻度で一般化とか、あるいは一般化と同時に抽象化もしたいのだけど、その材料をあつめて仕分けしておく方法を思いつかない。シェルの履歴にタグでも打てればいいんだろうか。なんかちょっと違う気もする。

ところで、発表に遅刻してしまってごめんなさいなわけだけど、そのときはちょっと田島さんらとスクリプトとプログラムの違いについて与太話をしていて、変更に儀式が必要なのがプログラムで、そうでないのがスクリプト、みたいなことを田島さんが言っていて、なかなかうまいことをいうなあと思った。

2009-07-19

RubyKaigi2009 に参加しました

スタッフのみなさん、これまでの準備と3日間の運営おつかれさまでした。おかげで会期中は心地よく過ごすことができました。ありがとうございます。

また、私の発表を聴きにきてくれた方がたにも感謝します。じつは毎回あまり感想を直接聴くことがないので、手ごたえを感じられず、ちょっとさびしいので、主催者のアンケートに何か書いてもらえるとうれしいです。

前置きが長くなりましたが本題。私の今日の発表の質疑応答のときに、手を挙げたのに気づかれず無視されてしまった方がおられたと、あとから聞きました。たいへん申し訳ありません。お詫びします。

RubyKaigi2009Speaker

2009-06-24

ペプシソはサラダにかけるとうまいらしいよ via @eban

さっそく買ってきました

かけてみました

食べました

炭酸はかけた時点で抜けちゃう。塩気がないのでデザートっぽい。甘酢和えのようなものかな。コンビニのドレッシングはしょっぱいからたまにはこういうのもいいかも

2009-04-19

せっかくなのでつづけて料理のことを書いてみる

昼は昨日のカレーリミックスしてもらう。

夜はなんだか麻婆豆腐が食べたくなり、材料を買いに行く。調味料が全部そろってるか確認してこなかったけど、たぶんあるだろう。豆腐とネギとニンニクとひき肉を購入。あともう一品ほしくてセロリとピーマンを購入。

帰ってからまずは豆腐をパックから出して水切りしておく。それから調味料のチェック。レシピは 陳建一のうま辛でごはんがおいしい四川料理 (NHKきょうの料理シリーズ) を使用。豆板醤、豆鼓、甜麺醤、片栗粉、鶏がらスープ、塩、コショウ、醤油。酒を切らしていたが、紹興酒が残っていたのでこれで代用することに。花山椒はあったけど、すでに匂いがだめな感じだったので使わないことに決定。

さきにもう一品の方から作る。きのうもらったタケノコを適当に拍子木切り。セロリとピーマンも同じ形に切る。中華鍋を熱してごま油をなじませ、タケノコから順番に炒め、ピーマンを入れて塩を適当に振ったところで火を止め、適当に攪拌して完成。皿に盛る。味見したらすげーうまくて自画自賛する。

つぎに調味料を測っておく。豆鼓がちょっと少なかったけどまあいいや。ニンニクとネギを刻む。鶏がらスープと水溶き片栗粉をそれぞれ用意しておく。豆腐を切って、調理スタート。熱した中華鍋にサラダ油をなじませて、ひき肉を中火でほぐすように炒める。ニンニクを加える。ニンニクのいい匂いがして肉の色が変わってきたら、豆鼓を投入。つぎに豆板醤、甜麺醤を加えて焦げないように炒める。香りが出てきたら、スープを入れる。煮立ってきたら、豆腐と塩、コショウ、醤油、酒で作った合わせ調味料を加えて軽く煮込む。少し汁けが少なくなってきたところでネギをまぜて、水溶き片栗粉でとろみをつける。最後に鍋肌から油を大さじ1くらいおとして照りをつけて完成。

片栗粉がちょっと多すぎて硬くなりすぎた。残念。

卵スープをつくるのをすっかり忘れていて食べながら作ることに。鶏がらスープに刻んだネギをくわえて、塩としょうゆで味を調えて、溶き卵をふんわりなるようにまぜて完成。

久しぶりに作ったけど、まあまあいいんじゃないか。辛くておいしい。白御飯が足りないくらいだ。サンショウを切らしてたのと片栗粉をいれすぎたのが悔やまれる。全体としては80点くらい。

hits