今日も本を読んでないですね。ヤバいですね。手元に本はあるのですが。
葉隠は入門じゃなくて本編の方も何度も読みましたが、最近テレビで戦争のドキュメンタリーとか放送しているのを見ると、この種の本も何となく読みたくなります。ちなみに葉隠というのは精神修養とかそっち系の本だと思っている人がいるかもしれませんが、ぶっちゃけノウハウ本です。書店のビジネス本コーナーに平積みされているような系統の内容です。
今日はちょっと Cracking the Coding Interview を読み始めました。
VI Big O の章はmetrix、計算量がテーマですが、素人にコードを書かせると計算量を全く無視したコードを書いてきて驚くことがありますが、O(n) のような知識は大学に行けば最初に出てくる話です。多分。
ところで、次のコードはこの本に出てくる最小値、最大値を求めるプログラムなのですが、
int min = Integer.MAX_VALUE;
int max = integer MIN_VALUE;
for (int x : array) {
if (x < min) min = x;
if (x > max) max = x;
}
(p.41)
私ならこうは書きません。次のような感じになると思います。
int min = array[0]
int max = min
for (int x array) {
if (x < min) min = x
else if (x > max) max = x
}
インデントとか言語仕様はテキトーですが、古いプログラマーってこういうセコいのが好きなんです。O は変わらないんですけどね。あと、番兵とか使うのも好きです。まだ読み始めたばかりなので分りませんが、後の方で出てくるのでしょうか。
Cracking the Coding Interview: 189 Programming Questions and Solutions
Gayle Laakmann Mcdowell 著
Lightning Source Inc; 6版
ISBN: 978-0984782857
勢いで6さつ目、行ってしまいますよね。「浜村渚の計算ノート 6さつめ パピルスよ、永遠に」。いくつかのエピソードに分かれているのはいつもの通りです。浜村渚って誰とか前回も全然説明ないけどいいですよね?
1つ目の作品、「log10.『シスター・メルセンヌの記憶』」のネタは完全数。この話に出てくる居森さんは卵を割るのに6秒、かき混ぜるのに28秒、焼くのに496秒を使います。この6、28、496 って何なの、それが完全数で、
その数を除いた約数を全部足すと、その数になる
(p.31)
という性質を持っています。タイトルにシスターという言葉が出てくるのは舞台が修道院になっているからですが、考えてみれば修道院というのが日本だとかなり珍しい存在ですよね。微妙な宗教色があるのは「黒い三角定規」という集団を宗教的に見ている側面もあるからでしょうか。
2つ目の作品、「log.100『ナポレオンが見つけてくれた』」は、トランプのゲーム、ナポレオンが出てきます。この本は巻末にナポレオンのルールが紹介されていますが、高校のときに部活が終わった後にやったような記憶があります。殆ど忘れ去られた記憶なんですけどね。数学ネタとしてはナポレオンの定理が出てきます。
一般的な三角形の周りに、各辺を一辺とする三角形を作り、それぞれの重心を結んで三角形を作ると、それも必ず正三角形になるんです。
(p.153)
これがナポレオンの定理といいます。それがどうしたという感じですが、もちろん強引に犯罪のトリックに結びつけています(笑)。
3つ目の作品、「log 1000.『集合と孤独のジュース』」は、ピーチ★ど★もるがん、という名前のアイドルが出てきます。平仮名にしたらアイドルっぽくなるという法則はないような気がしますが、とりあえず黒い三角定規の団員なのです。ネタは集合です。
ド・モルガンの法則です。
(p.188)
この有名かつ簡単な法則を言葉で説明するのは難しいですが、本にはヴェン図が出てきます。最近はヴェン図というのですか? 私は中学校でベン図と教わったのですが。
4つ目の作品「log 10000.『魂はピラミッドを彷徨えり』」はリンド・パピルス。古代エジプトの数学が話題になっています。
古代エジプトではさ、パンを分けたり、土地を測量したり、牛を数えたり、そういう実生活に密接に結びついた数字が発展した
(p.264)
この話は4個のパンを5人で分ける話に続くのですが、具体的には、まず4個のパンのうち3つを2つに割って、1/2を5人で分ける。残った1/2と1個のパンを、1/4のサイズt6個にして、5個を5人で分ける。残った1/4を5分割して5人で分ける。これで、
1/2 + 1/4 + 1/20
ずつ等分に分配できる、というのが古代エジプト流なのだそうです。一見面倒な感じもしますが、日常的に似たようなことは結構ありそうですね。ただ、最後までちゃんと分けるよりも、どこかで面倒になって誰かが全取りしていそうな気はします。
今日は久しぶりに、浜村渚シリーズで、5さつ目「鳴くよウグイス平面上」です。1つ目の短編「log 10『遊星よりの問題X』」は魔法陣。UFOキャッチャーで魔法陣を作るというのは斬新ですけど、私だとUFOキャッチャーが下手なので一撃で挫折しそうです。
2つ目の短編「log100. 鳩の巣が足りなくても」は鳩の巣原理がネタです。鳩の巣原理ってどこで習いました? 最近の小学生は知っているようですが、私は習った記憶がありません。
用意されている巣箱は4つ、鳩は5羽。鳩の数のほうが多いんで、少なくとも1つの巣箱には、2羽以上の鳩が入らなければなりません
(p.141)
ま、考えてみると凄く当たり前のことなのですが。
3つ目の短編「log1000. 『パップス・ギュルダン荘の秘密』」はもちろんパップス・ギュルダンの定理がネタになっています。これは回転体の体積が、
(回転する図形の面積)×(その図形の重心が一回転した距離)
(p.187)
この定理は知っていても大学入試の解答に使ってはいけないことでも有名ですね。
4つ目の短編「log10000. 『京都、別れの二次関数』」は、タイトルのまんまで二次関数です。判別式とか出てきます。京都なので京都系のアイテムも出てきます。
有原の遺体の周囲には、土にまみれた堀川ごぼうが二十本ほど散らばっていたのである。
(p.265)
堀川ごぼうと言われてもピンと来ないですけど、烏丸御池とか寺町通とか、知っている人は知っている地名が出てくるので、親しみやすい…かというと、流石にいくら京都が縦横整っているといってもグラフを想像するのはちょっと難しいです。
浜村渚の計算ノート 5さつめ 鳴くよウグイス、平面上
青柳 碧人 著
講談社文庫
ISBN: 978-4062777766
いやーもう書くことがないので、今日来た spam メールを紹介しちゃいます。パワーが半端ないです。
私は某探偵社の調査員と申します。お客様に頼まれ、貴方のことが全面追跡調査を行います。仕事中で貴方が身分があるであることを見つけました。それで貴方が人知れずの一面を了解しました。私にとっていい見つけると思います!
もし私はこの材料を公開したら、絶対貴方にとって悪い影響があります。もしこの資料を貴方に渡したら、私達にとっていいじゃないの。
お客様と社長さんは私に「貴方が貴方の家族はとても大切」だと言いました。
貴方は私の要求を満足すればいいんだよ。もちろん、貴方は警察に連絡してもいいんです。でもね、私のノートに貴方の電話と住所を全部書いていますよ。
私の指示を操作しないと全部のことをご家族にお知らせしますよ。チャンスは一回しかない、手紙が二度来ないから。
24時間以内に2個つのビットコインを支払ってください
(Bitcoinウォレットアドレス:********************************)
Bitcoinをもらってから 私達は世間で知り合ったことを忘れている、これから貴方は何にも危険が無いです。すべて悪い物を隠滅します。
覚えてね、まぐれ心を持ってないでくださいね、チャンスは一回しかないよ。
「2個つ」という表現がなかなかいい味を出していると思いました。