これは圏です(はてな使ったら負けだとおもっていた)

きっと何者にもなれないつぎの読者につづく。

ICFP 2010 競技説明

ICFP 2010 Task description の非公式日本語訳を置いておきます。非公式でやっつけ仕事なので、誤訳などがあるかもしれません。見付けたらご指摘おねがいします。
また、訳文中の誤りによって何らかの損害を被っても何ら責任は負えませんので、悪しからず。


原文:http://icfpcontest.org/2010/task/
翻訳:石井大海

ICFP Contest 競技説明

今年のコンテストの目的は単純です:金を沢山儲けるのだ
国際的な自動車・燃料製造(International Car and Fuel Production)で!

自動車と燃料の市場

あなたは自動車産業に従事し、日々自動車と燃料の設計・製造を行っています。各自動車は微妙に仕様が異なり、それぞれ適合する燃料が異ります。燃料が自動車に合うかどうかは、コンテストサーバを利用して簡単に判定出来ます。自動車だけから最適な燃料を探しだすのは簡単なことではないでしょう。これこそがあなたの仕事です。自動車の仕様はオープンソースで誰でも読むことが出来ますが、燃料の調合は非公開なので、独力で考えなくてはなりません。

コンテストであなたが行うべきことは二つあります。即ち、

  • 自動車に合う燃料を計算・送信すること
  • 新車を専用の燃料と共に送信すること

です。

これがあなたの収入源です。得点は自動的に計算されすぐに表示されます。


すべての自動車は常に利益を産みます。それぞれの自動車から発生した利潤は、その自動車用の燃料を製造している全員で共有されます。勿論、自動車の製造者も含まれます。利益の配分は平等ではなく、より効率的な燃料を製造した人に多く配分されます。

つまり、あなたの目標は、他の参加者の自動車に適合する燃料を設計し、また、なるべく他の参加者が燃料を設計しにくい自動車を設計することにあります。

はじめの内から、既に何台かの自動車が既に市場に出回っています。コンテスト中、参加者・主催者の双方により沢山の自動車が製造され、出荷されるでしょう。

自分が燃料を設計した自動車の数より多くの自動車を製造することは出来ません。
最大で72台(コンテストの開催時間と同じです)の自動車を製造することが出来ます。

この制限は、あなたがどの部門に参加していても適用されます。特に、Lightning部門参加中に上限一杯まで製造してしまった場合、後のコンテストに参加することは出来ますが、もう製造できるのは燃料だけになります。

採点

どの車に対しても、配当はその自動車の燃料を供給したチームすべてに支給されます。燃料はサイズ順にソートされ、サイズが同じ場合は提出された時間の早い方が優先されます。つまり、サイズが小さく提出が早いほど良く、特に小さいことが重要になります。ひとつの車に対して nチーム が燃料を提出した場合、順に 1/n, 1/(n+1), ... 1/(2*n-1) 点をそれぞれ獲得します。

自動車を設計したチームが最初に提出した燃料も、この評価の対象になります。これは、自動車の設計者がより多くの利益を得られるための措置です。

配当は一定の期間ごとに支払われ、チームの口座に貯蓄されます。しかし悲しいことに、所得税が課せられています。どの期間も、一定割合の税金を払う必要があり、一日の間で50%を失う様になっています。

新車は提出された後、すぐに公開されます。利益が発生するのは、公開されてからちょうど一期間後からです。

各チームの得点は公開され、各期間の終了と同時に更新されます。しかし、上位5位までの得点はハイスコアの一覧から除かれています。上位者は点検のためソースコードを提出する様に要請され、勝者は9月のICFPカンファレンスで発表されます。

自動車の仕様

自動車のエンジンは燃焼室(chamber)の一覧によって与えられ、各燃焼室はアッパー・パイプ(Upper pipe)とロワー・パイプ(Lower Pipe)と云う二つのパイプを搭載しています。パイプは幾つかの区域(section)が並んだものです。パイプは外気を吸い込む機関です。外気は自由に使うことが出来、実際には何種類かの物質の混合気体です。

区間内では、左隣の区間からの物質と燃料タンクから直接供給される燃料による化学反応が起きていて、生成物は右隣の区間に供給されます。最終的に、両パイプの生成物は差動機関(Difference Engine)に運ばれ、機械の動力に変換されます。タンクから各区間への配管は自動車の製造者が設計したものになっています。


下の図を例にとると、ある自動車が0番, 1番の二つの燃料タンクを搭載していて、ただ一つの燃焼室だけから成ってい、パイプは二本あります。アッパーパイプは二つの区間から成り、両方ともタンク0と接続されていて、ロワーパイプは三つの区間から成っていて最初と最後の区間はタンク0、真ん中の区間はタンク1と接続されています。

      upper pipe:  -> section -> section ------------.
    /                   /          /                  \
   /         fuel 0  --<----------'--------.      difference      positive
 air                    \                   \       engine  --->  energy
   \                     \                   \        /
    \ lower pipe:  -> section -> section -> section -'
                                    /
             fuel 1 ---------------'
                        

正規の自動車

自動車は次の条件を満たす時だけ、公道を走ることが出来ます。

  • 燃料タンクの数は最大6つ
  • 標準化されている(normalized)こと
  • 結合的である(connected)こと

ある自動車を、燃焼室の順番の入れ替え・燃焼室の複製・燃料タンクの順番の入れ替えを経て別の自動車に変形出来た場合、その二つの自動車は等価(equivalent)なものであると見做します。自動車が『標準化されている(normalized)』とは、その三進表現(ternary encoding;下記参照)が、他の等価な自動車のものの中で最も小さい(辞書順で)ものである、と云う事です。


結合性(connectedness)の定義は次の通りです。
今、ある燃焼室Cのいずれかの区間(section)のアッパーパイプにタンクs が接続され、またある区間のロワーパイプにタンクt が接続されているとき(訳註:同じ区間でも違う区間でもいい)、タンクt は タンクs に依存している(depends on tank s)と云うことにします。また、s から依存性を辿っていって t へと辿り着けるとき、s は t に間接的に依存している(indirectly depends on t)と云うことにしましょう。
自動車が結合的(connected)である、とは、どんなタンクの組(s,t)についても、t が s に依存していると云うことです。上の節で例示した車は、タンク1からタンク0への依存性がないため、結合的ではありません。

燃料

どの区間でも、燃料は気体と反応し、それによって次の区間への気体の成分が変化します。この変化は線型です。つまり、タンクc と接続されている区間から出力される気体成分 k の量は、次の式で与えられます。

out(k) = c(1,k) * in(1) + .. + c(n,k) * in(n)
ただし、 in(i) は入力気体中の 気体成分 i の量

自動車に燃料を供給するにあたって、製造者は各タンクc について、中身の燃料を特徴づける c(i, k)の値を決定しなくてはなりません。

気体は多くの成分から成っていますが、そのタンクが扱う成分の数 n を選ぶことが出来ます。

各成分k について、アッパーパイプの出力に含まれるkの量が、ロワーパイプのそれと同じか上回ったときに限り、差動機関は作動します(訳註:駄洒落ではない)。この条件は、気体の状態に依らず、つまり吸入される気体の物質構成に依らず、常に成立していなくてはいけません。

気体の一番目の成分は特殊な役割を果します。吸入気体は常にその成分を含み、燃料との反応でその量が減少することはなく(つまり c(1,1)の係数は常に正であり)、そうでなければ差動機関は動作しません。


製造者は、燃焼室のうち幾つかをメイン燃焼室 (Main chamber)として指定します。メイン燃焼室のアッパーパイプから排出される第一成分の量は、ロワーパイプの排出量を厳格に上回っていなくてはいけません。それ以外の燃焼室は補助燃焼室となります。

三進ストリーム(Ternary Streams)

ICFPコンテストは、そんなに生易しいもんじゃありませんよ。


自動車も燃料も、その説明は構造的データとして与えられます。実際には、自然数のリスト(複数)、自然数のリストのタプルのタプルの…のタプルのリスト(複数)、そして自然数のタプル(複数)です。
自動車・燃料のデータは両方ともにトリット(trits; 三進数のビット)のストリームで表されます。さて、もう皆さんうすうすおわかりと思いますが、データについてはこれ以上の解説はここではしません。ストリームパーサのエラーメッセージから頑張って類推してください。


幾つかヒントを出しましょう。コードはどんなに大きな自然数も、どんな長さのリストも扱えます。リストはそれ自身境界を持ち(!!FIXME!! 原文:code is self-delimiting)、実際、燃料のデータのあとのゴミデータは無視しますが、自動車の後のゴミデータは無視しません。また、コードには冗長性(redundancy)がありますが(つまり全てのトリット列がコードの語(word)とは限りませんが)、そんなに多くはありません。


例えば、以下はある自動車を表わす三進コードです。

221022000022010112201010022001122011110220010

回路

まだ簡単そうだとおっしゃる?大丈夫!まだ他にも障害はあります。燃料のデータをそのまま数字で送信することは出来ません。その代わりに我々の与えるある入力列から目的のストリームに変換する工場(factory)の仕様書を与えなくてはいけないのです。


工場は、ゲートと導線から成る回路です。どのゲートも二つの入力と二つの出力を持ち、導線は出力と入力を繋ぎます。どの入出力端子とも、ちょうど一つだけの導線で繋がれていなくてはいけません。"前むきな(goes forward)"導線は情報を即座に伝達し、"後ろむきな(goes backward)"導線は遅れて伝達します。

また、外界とのやりとりのために、どの回路も入出力端子をひとつずつ持つ "外部(external)"ゲートを含んでいなくてはいけません。回路の入力ストリームは外部ゲートの出力から現れ、回路からの出力は外部ゲートの入力端子に送信します。

こうして、工場は燃料を表わすストリームを生成することになります。工場のサイズは内部のゲートの数であり、小さい工場ほどより効率的です。(これは採点に重要な点です。)


もうわかってると思いますけど、ゲートの意味論も回路の構文もここには書きませんよ。その代わり、鍵回路の例をここに書いておきますか。

19L:
12R13R0#1R12R,
14R0L0#4R9L,
9R10R0#3L8L,
2L17R0#5L9R,
15R1L0#10R13R,
3L18R0#6L15L,
5L11R0#13L12L,
19R16R0#11R8R,
2R7R0#11L10L,
1R3R0#18L2L,
8R4L0#16L2R,
8L7L0#15R6R,
6R0R0#14L0L,
6L4R0#14R0R,
12L13L0#17L1L,
5R11L0#16R4L,
10L15L0#17R7R,
14L16L0#18R3R,
9L17L0#19R5R,
X18L0#X7L:
19L

そして入力は:

[0,2,2,2,2,2,2,0,2,1,0,1,1,0,0,1,1]

出力に関しては、自分で頑張って見付けて下さい。最初の17個の出力は「鍵」と呼ばれ、解答をエンコードした三進ストリームの冒頭に必ずついていなければダメです。
どんな回路でもサーバに送信して、出力の最初のトリットを見ることが出来ます。

サーバーは上のストリームとは違う入力ストリームを使っているので、「鍵回路」をそのまま送信しても、直接的には役に立ちませんよ。

戦略上の注意

コンテストの初期には、回路を 自動車#0 (三進コードで "0")の解答として送信しましょう。この自動車は、燃焼室もなければ特別な燃料も必要としないという、一風変わった自動車です。この自動車は鍵接頭辞を特定するためだけにあります。

鍵接頭辞を出力する回路を送信した瞬間、最初の配当が支払われます。もちろん遅くなれば、取り分は小さくなるでしょう。


自動車を72台送信し終えても、他の自動車用の燃料を作ることで、よい利益を得ることが出来るでしょう。

Lightning部門での得点は、ちょうど24時間後に採点されます。

ICFP 2010 開幕

いよいよ始まりましたね、http://icfpcontest.org/2010/。僕も参加しようと思ってたんですが、恰度学部のオリエンテーション合宿とか云うよくわからないものに土日を取られてしまうので、実質今日と月曜しか参加出来ないのでした。

で、取り敢えず konn と云う団体名(と云っても個人だけど)で登録して、Task description を読んでみたんですが……こりゃ厳しそうだ(汗;
例年むずかしそうなのに、今年は出題者側が気が狂ってるとしか思えないほどリバースエンジニアリング祭です。
口惜しいので全文翻訳しました。専門家じゃないし多分誤訳とかあると思います。土日中は確認出来ないと思いますが、誤訳を見付けたら教えてください。

絶対に許さないからな!これで今日はもう参加出来ない!日月だけじゃむりだ!!!!!

では、以下に Task descriptionを。

Prolog をべんきょうしています

先週の木曜日、大学の図書室で『Think CでMacintoshプログラミングとか何年前www』『TAOCPがある……!!』などと暇を潰していたら、大量のProlog本に混じり『Prologの技芸 (以下 TAOP*1 )』を発見。すぐさま「ひとは若いうちにScheme, Prolog, Haskell に触れなければならない!」と云う電波を受信し、その電波の導くままにPrologの勉強を決意したのでした。
ちなみに、図書室にには三冊のTAOPがあって、浮世絵の表紙が生存しているのは一冊だけで、残りはカバーがないのが一冊、更に背が死んでいて図書室が貼り替えたものが一つ。

次の日、MacBookを学校に持ち込み、TAOPを早速借りながら勉強をはじめる。表紙が生き残ってるのを借りる。しかし、前読んだ人の書き込みや髪の毛が大量に含まれていてびっくりする。
しかし、id:pi8027から何故か早朝に『類推論できました』と云う報告を貰ったので、まずはYadorigi*2さんを苛める。バグをひとつ見付ける。すぐ修正される。

授業がハネて暇だったので、恰度ぱいさんが秋葉原に向かっているとのことで、人生第三回目の秋葉原に足を踏み入れる。そして初リナカフェなう。

リナカフェのトイレが電波がわるくて悲しかった。あとFONとか云う公衆無線LANに接続しようとするも、一旦登録したIDで接続出来なくて、もういっかい登録しようとボタンを押してもログイン画面に引き戻されてしまい、けっきょく接続できない。万死。

そんなこんなしている内にぱいさんがくる。やどりぎさんまわりと類推論・型推論のはなしをきく。ユニフィケーションとモナドとか、モナドの中での不純なデバグ方法など。あと色々裏話をきく。Typing Haskell in Haskell は読むべきと云う情報をもらう。ありがとうぱいさん。

やどりぎさんを苛めるぞ!とおもったけど、ちゃんと

type S f g x = f x (g x)
type K f g = f
type I = S K K

が正しく推論されていてぼくは感動する。感動してもうバグを見付けられなくなる。僕のまけです。


型理論のはなしの流れで、いけがみさんがついったーで紹介していた論文(CiNii 論文 -  型理論I (<特集>関数型プログラミングと計算の基礎), CiNii 論文 -  型理論II, CiNii 論文 -  型理論III, CiNii 論文 -  型理論IV)で読んだことを掻い摘んではなそうとするも、掻い摘みすぎてちゃんと説明できなかった……。

で、この論文に載っているλ-Cubeを実装したいなぁ、と思い立つ。Haskellでやると大変そうなので、そうだ、こういう公理から推論させるならユニフィケーションもあるPrologで実装しよう!と、モチベーションがさらにあがる。

あと、ぱいさんにSandS入力の洗脳を受け、左Shiftキーを殺される。結果、入力に非常に時間が掛かる様になり発狂、その様子をみたぱいさんが爆笑しやがる。今回の会合でわかったことは、ぱいさんの沸点が異常に低いということである。っていうかテスト期間中に徹夜で類推論書いてる高校生とか終わってますね……!!変態さんめ。


その後id:nihaさんと合流して、おいしい親子丼やさんにいく。とてもおいしい。どのくらいおいしいのかと云うと、にはさんが『高いだけのことはある』を連発していてみもふたもない。あとにはさんが一番場数ふんでるくせに、道に迷いやがる。mjspに行くときも迷っていたので、にはさんは迷う才能があると思う。

で、親子丼やさんではCurry-Howardが すごいなぁというはなしとか、Template Haskell のはなしとか、なんかそういうはなしをする。
ぱいさんは後半からAgdaを勉強しはじめていて、にはさんが依存型について説明をする。ぱいさんが「こんさんもAgdaやりましょう」と云うのだけど、ぼくにはHaskellと云う伴侶がいるし、Prologに浮気しはじめたばかりなのに三股をかけるのはちょっと……と思ったので心に止めておくに留める。
Prolog型推論書いたら簡単そうなので書こうと思います」と云ったらにはさんに「それは簡単すぎるなー」みたいなことを云われたので、口惜しいからHaskellPrologを実装することを心に誓う。


と云うわけで、HaskellProlog を実装しその上で型推論を実装するべくPrologを勉強しています。
練習問題を解いてみた答えは GitHub - konn/TAOP-Exercises: The Answer code for "The Art Of Prolog(2nd Ed)" Exercises. に忘れなければ同期してあります。更新されてなかったらサボってると思ってせっついてもかまいません。せっつかなくてもかまいません。自明ですね。
アセンブリに始まり、Fortran、Algol、Pascal、そしてAdaへと居たる言語発達史の主流をなす言語は……」と云う記述があって、時代を感じた。もうCはある時代の筈なんだけど……

実際のところ、ユニフィケーションが型推論の中心らしいので、Prologを実装しちゃえば半分は仕事終わりで、残りは規則を記述するだけになるわけで。たのしみである。


あと、野望としては、Haskell で実装した Prolog で実装した SchemeHaskell を書きたいのだけど、多分 Scheme 止まりになる気がしている。っていうかそもそも Scheme まで根気が保つかわからない。

まあそんなこんな。

*1:原書名 The Art of Prolog

*2:pi8027さんが未踏ユースでつくってる関数型言語

それは火曜日のこと

午前中の講義が終わり、僕はワセミスが活動するラウンジで一息ついていたのです。すると、幹事長がこんなことを云ったのです。

「「konnくん、来週の水曜日、麻耶雄嵩くるんだけど、どうする?」」

僕は耳を疑いました。麻耶雄嵩ってあの麻耶雄嵩先生!?座右の書は『夏と冬の奏鳴曲』(これは人類至高の書だと思っているのですが中々部内での合意が形成されていません)と云う私にとって、麻耶雄嵩先生は、もう『神様』そのもので、そう云えば『神様ゲーム』から5年も経つんだなあ、と云うかえっ、本当に来るの??京都在住だよねすごいなんてこったワセミスすごいどうしようそしたら翼ある闇も夏と冬の奏鳴曲も痾もあいにくの雨でも木製の王子も鴉もまほろ市もメル美袋も名探偵木更津悠也も螢も神様ゲームもサインしてもらおうかなでもそれはすごく迷惑だしこの際夏冬だけにするべきかなああでもなんてこったすごいぞすごいぞ…………と云う様な思いが一瞬にして脳内を去来し、去来し、去来しました。

僕は一瞬にしてこの言葉の洪水を飲み込み、幹事長に質問したものでした。
「何時ですか?」「四時半からです」

嗚呼、何と云うことでしょう!僕は一転苦悩に突き落とされました。水曜の講義が終わるのは16:15。急いで向かっても20分は掛かります。麻耶先生の手前、途中から遅刻して参加なんてことは万死に値します。しかし、講義は出来るだけ休まないお!と心に決めた私です。仲間との劇団の公演も講義を休みたく無いとゴネてズラして貰った私です。そんな私が……講義を……でも……麻耶先生に会えるなんて……しかも間近でお話しが聞けるなんてそんな機会滅多にあることじゃ……でも……うーーーーん……………

「遅れて行くことは……?」「うーーん、うちが主催って訳じゃないし、ちょっと失礼かなぁ」

やはりそうだ失礼なのです。そしてこれは千載一遇のチャンスなのです。人生に一度あるかないかのチャンスなのです。神よ、神よ、何故私を見捨てるのだ《エリ・エリ・レマ・サバクタニ》!いや、ごめんなさいそんな普段から信じてないですけどうーんでもどうしよう……麻耶雄嵩先生かぁ……うーーーん…………死んでもいい……


などと一日中悩み続けていました。途中、『当然参加するよな!』『休め!』『本にサインしてもらって自慢してやるよ!』など、友人からの心温まるメールにも悩まされた結果、僕はとうとう、悪魔に命を売り渡し、読書会への参加を決意したのでした。

と、云う訳で、次の記事からが読書会のレポート本編になります。御目汚ししました!

麻耶雄嵩読書会 ネタバレありレポート

ネタバレありレポートの準備が出来ました。次のリンクをクリックして先に進んで下さい。
注意:核心に触れています!未読の方は絶対に読まないで下さい!

続きを読む

麻耶雄嵩読書会 に参加してきました

先週水曜日の麻耶雄嵩読書会に参加してきました。

これは、麻耶先生実に五年ぶりの新刊『貴族探偵』の発売を記念して、麻耶雄嵩先生を囲んで読書会を開こう!と云う企画でした。集英社の担当編集者の方からワセミスの方にお話を頂いて、実現したものです。

会場は早稲田大学学生会館。僕は宿題やら課題やらを片付けて、一時間前くらいに会場入りをしました。


もう、時間が迫ってくるに従って、体中の顫えが止まらなくなり、もうどうしよう、麻耶先生が来たら死んで仕舞うかもしれない……!!くらいに有頂天になっていました。参加者はワセミスや東大の新月お茶の会慶應大学KSDの方々、ワセミスOGの東京創元社の編集者の方など30名弱。続々集まる中、何故か最前列だけ埋まらなかったので、そこにワセミス一年勢が座ることに!
殺人的なメールをくれた友人と『どうしよう!麻耶先生が来ちゃう!』などと騒いでいると、遂に開始の時間に。


そして……御登場です!麻耶雄嵩先生!!


滅茶苦茶格好好かったです。
凄く格好好かったです。

いや、これはファン補正が掛かっているのでもなんでもなく、落ち着いて渋めで格好好かったです。


そして、いよいよ読書会開始!
セミスの幹事長とレジュメ担当者、集英社の担当編集者さんからの挨拶のあと、麻耶先生の

麻耶『麻耶雄嵩です。お手柔らかにお願いします』


と云う言葉で開幕!

その後は、『貴族探偵』に収録されている各短編について感想や質疑応答をして、最後に全体・その他の感想・質問、そして『貴族探偵』販売&サイン会と云う流れでした。

僕は、『流石に全作サインして頂くのは迷惑だろう……』との熟慮の末、夏冬・翼ある闇・鴉・神様ゲームと四冊も本を持ってきていたのですが、「いや、五冊でも迷惑にはかわりないな……」と熟慮した挙げ句、僕の聖典である『夏と冬の奏鳴曲』を、『貴族探偵』以外にもう一冊サインして貰おう!と決意したのでした……麻耶先生、参加者のみなさん、ご迷惑をお掛けしました m(_ _)m
麻耶先生は、貴族探偵前提でペンを用意されていたので、銀インクのしかなく、黒ペンをわざわざ他の方にお貸し頂いてサインして頂くことに。その上スペースの小さい文庫本……本当に済みませんでした……orz

もうぼくのすぐ左前方に麻耶先生が座っていて、ぼくはもうそわそわし通しで、ジロジロ見るわけにもいかないし、ああでもどうしよう……!!ととても挙動不審に。質疑応答中にも何度か発言させて頂いたのですが、しどろもどろになってしまったりして、失態を……。同じ時間・空間を共有していることが信じられませんでした。凄い!眼の前に麻耶先生がいるなんて!!
本当に産まれて来てよかった。早稲田にしてよかった。そう思える、一生分の運を使い果したのではないかと思われる程の体験でした。

その後、麻耶先生を囲んでの呑み会があったのですが、僕は用事があったので後ろ髪を引かれつつも辞去……!!嗚呼、みんなあんなことやこんなことを訊いたんだろうなあ!と胸が疼きます……!

さて、そんな自己中っぷりを発揮してばかりでは仕方ないので、せめての罪滅ぼしとして、当日のやりとりの抄録を掲載したいと思います。

担当編集者さん曰く『ネタバレは御遠慮下さい』と云うことなので、「『続きを読む』とかでも駄目ですか?」と質問させて頂いたところ、『それなら……まあ……』と云うことでしたので、ここでは取り敢えず差し支えなさそうなところだけ書いて、この後核心に触れる質問は『続き』+白文字で記述して行きたいと思います。

麻耶雄嵩読書会』質疑応答 抄録

以下、『――』で始まる行は参加者の発言、『麻耶』は麻耶雄嵩先生、『担当』は集英社の担当編集者である岩田さんの発言です。
収録されている発言はすべてmr_konn=石井大海のメモによるもので、内容の間違い等はすべて石井大海の責任です。また、メモからの再生なのであんまり口調とかは再現出来ていません。発言はかならずしも出た順番ではなく、話題に合わせて再配置してあります。

不味いところがありましたらご連絡頂ければ、すぐに対処したいと思います。

それでは、どうぞ!

『ウィーンの森の物語』(『貴族探偵』改題)

――物語的には普通の小説ですが、再読すると犯人がとても頭がよかったのだとわかります。一読しただけでは判らない様になっていますが、この様にした意図は?
麻耶「『何とすごい犯人なんだろう』みたいな強調をしない様にしたらこうなった。もうちょっとしてもよかったかも?」


担当「これ何dunit何でしょう?」
麻耶「あまり『〜dunit』を書こう、と思ってつくっていない。トリックを思い付いたらそれを使うだけ。勿論、犯人当ての依頼でHowdunit書いちゃったら不味いけど(笑)」

『トリッチ・トラッチ・ポルカ

――題名の意図は?
麻耶「何となくです。シリーズ化して纏めるときに、何か趣向があった方が良いなぁ、と。『ポルカ』が刑事の動きっぽい。ヨハン・シュトラウスにしたのは、何となく『ワルツ』が貴族っぽいので。」


――女性が登場しなかったのは?
麻耶「まだ二作目で、『女性を口説く』パターンが考えてあった訳でなかった。書いていく内に、女性の方が視点人物を増やさないですぐ本題に入れて楽だと気付いた。」


――結果的に、五話の中で一番刑事が頑張った回でした。その後は警察と距離感がありますが、この回での警察の扱いにはどういう意図が?
麻耶「警察の扱いはあまり下にしないでおこうと思っています。でも探偵の活躍を描くとどうしても下めに見えてしまう。今回は刑事視点だから頑張りが見えたけど、他の作品だと貴族探偵と女性の絡みや貴族の捜査を描写しなくてはならず、その皺寄せで刑事の描写が減ってしまう。描写がないだけでちゃんと捜査していて、推理に必要なデータを提示するにはそれなりに信用できる警察である必要がある。」

『こうもり』

――五作の中で、田中だけが単独で二回登場したのは?
麻耶「使用人の個性を無くそうと思った。毎回変えてしまうと、その事で却って個性が出て仕舞う。『全員一回ずつ』とか綺麗にしない方が個性が消えるので。だから、もっとぶ厚くなれば庭師なりコックなりが出て来る可能性もあった。」


――くどい様ですが、メイドは二人居るのでは!?
麻耶「参考にします、それは(笑)」
担当「女性に話を聞くのに、田中の方が良かったからと云う風に聞いています。」
麻耶「あとは、ダブらせる為にやったのが大きいです。」

『加速度輪舞曲』

――すごく"危うい"作品だなぁ、と。完全にロジックのみで、ドミノ倒しみたいに進んでいく作品。元々本格ミステリは詭弁に近いのに、それを数珠繋ぎにしている。
麻耶「危ういからスリリング。現実だったら迷宮入りだけど、スリリングな方が面白い。岩が落ちてきて、その先がやりたかった。川が氾濫したり、館壊れたり……そこまで云っちゃうとギャグになっちゃうけど(笑)」


――結局、『風が吹けば桶屋が儲かる』的だけど、その一つ一つがとても妥当で、『九マイルは遠すぎる』の様な妄想推理ではない。
――『本格ミステリ09』に収録された時、法月綸太郎の「しらみつぶしの時計」と並んで、友人とずっとこの話で持ち切りでした。とてもロジックの勉強になりました!
麻耶「あまりぼくからは勉強しないで(笑)」


――『昨年鬼籍に入ってしまった』『安楽椅子探偵を看板にしている作家』には誰かモデルが居るのか?
麻耶「居ないです。居るって思わせられればそれでよかった。」


――ロジックものは、大抵タネになるアイデアがあってそこから書くと思いますが、本作では何ですか?
麻耶「小さいところからコツコツと大きくしていった。プロットから入った。」
――その最初のところは?
麻耶「最初は本当に家を壊した(笑)それはプロット段階で捨てましたけど。家の中で起こった事が外に影響を出さないといけないので」

『春の声』

――普通、円環殺人は構図を最後にもってきて驚かせるものですが、これはロジックで逆転させているのが凄いです。やはり『貴族探偵』はロジック指向の本なのでしょうか?
麻耶「本の締めだし、三人を活躍させたかった。円環殺人のアイデアもあって、その二つを結んだ。ただ単に円環でした、で終わってしまっては新しくないので、ロジックで押しました。三人分考えるのが大変だった」


――本シリーズに限らず、短編ごとにロジックが強くなってきている気がします。『死人を起こす』も『答えのない絵本』*1も。ロジックものを書くのはやっぱり楽しいですか?
麻耶「楽しいし、苦しい。華やかなアイデアが出て来ると良いけど、細かいのを積み上げるタイプだと、『あっ、これに似てる……』となってしまうと辛い……」

全体を通して・その他

――続編は?
麻耶「依頼があれば。同じ使用人かもしれないし、違う使用人が出て来るかもしれない。」


――貴族本人による解決は?
麻耶「ありません(キッパリ)」


――貴族探偵のプロフィールは……?
麻耶「ナゾです(笑) 貴族である、と云うこと以外は……」


――新しく貴族探偵を作った切っ掛けは?
麻耶「探偵とワトソン役の関係について考えるのが好き。『物語を終わらせる』のが探偵の使命、と云う考えを突き詰めた結果出来たのが貴族探偵。『神様ゲーム』と通底しているころがある。トリックと同じで、探偵を思い付いたから使ってみた。それが評判がよかったから続きを書いた……と云う感じ。物語としても、三編くらいは書かないと意味がなかったし、続きを書くつもりはありました。」


――貴族は装置化が進んでいるので、オーソドックスな短編がやりやすいのでは?
麻耶「貴族出さなきゃいけないし、女性と絡ませないといけないし、というところがヤヤコシイ。でも、メルとか木更津みたいにやらなくていいから楽です。」


――『隻眼の少女(仮)』は、出るんでしょうか?
麻耶「多分九月にでます。」
――2010年の!?
麻耶「どうなんでしょう、多分そうです!」

ネタバレありのレポートについては、少々お待ちを。
用意しました。一つ前の記事を辿ってください。

*1:いずれもメルカトル鮎シリーズ

地球を何周?

物質波のみなさんこんにちは!!


よく『光は一秒間に地球をn周する』みたいな説明を聞いて、光すごいなーなんて思うわけですが、よく考えりゃ光を円運動させておけるほど地球は重くない訳ですよ。はい。

……なんてことを数日前に思い付いて、そのままだった訳ですが、今日物理を勉強してる最中にふと思い付きました。『円運動の方程式使えば必要な質量でるじゃん!』


という訳で計算してみた記録。


まあその為には地球の半径Rと光速cとあと万有引力定数Gが必要だよね……と調べ、コツコツ計算してみました。いや、正確には地球の半径いがいは全部関数電卓に入っていたのでほとんど電卓くんのお陰なんですが……!!

以下、地球の半径R、質量M、光子の速さc、その質量m、万有引力定数Gとします。


で、まず円運動の方程式は次の通り。

m\frac{c^2}{R} = G\frac{mM}{R^2}

で、両辺mで割れば言い訳ですが、調べてみたところ光子は質量ゼロらしいじゃないですか!なんてこったどうしよう……まあでも、ブラックホールから光が逃げられない云々という話もあるし……まあきっと大丈夫なんだろうと誤魔化して先に進む。

で、変形すると

M=\frac{c^2R}{G}\\ \simeq 8.56\times10^{33}(kg)


みたいなかんじでまあ、地球の本当の質量は6.1×1024(kg)くらいで、ざっと十億倍の質量があれば大丈夫!!自重で潰れるなよ!!


うーんやっぱり重くするのには無理があった様です。かなしい……ここで逆転の発想です。それなら半径の方を縮めて仕舞えば良いじゃないか……!!

先程の式を変形してさっさかだします

R=\frac{GM}{c^2}\\ \simeq 4.52\times10^{-3}(m)

小さい!五ミリですよ五ミリ!実際の半径は6.37×106(m)くらいなので大型スリム化に成功しましたね!やった!!これだと一秒間に光が六百億周くらいしちゃいます!速い!!



まあゼロで割ってるし、そもそも光は単なる粒子じゃないしこれでよいのかはなはだ不安ですが、こんな結果です。突っ込みよろしくお願いします。



けつろん:光すごい