数学とチェス


4489021860クリスティアン・ヘッセ, 鈴木俊洋訳『数学者クリスティアン・ヘッセと行くマジカルMathツアー』(東京図書, 2014)(参考文献リストあり、索引なし)に「106 数学とチェス」という項目があり、次のような局面が紹介されています。

白の手番であれば、「1:ナイトc7」で詰む。黒の手番であれば、「1:・・・ナイトc2」で詰む。(p.239)

つまり問題は、この盤面状況において白か黒のどちらのプレイヤーの手番なのかということに帰着する。(p.240)

(中略。この局面が白番なのか黒番なのかを解明するための数学的議論)

したがって、上の盤面では、必然的に黒の手番であるということになる。そして、最終的にナイト*7をc2に突入させて勝つのも黒である。(p.241)

*7 一手でつむわけではないことに注意。〔訳者〕

疑問点が2つあります。第一に、黒から詰ます手は無さそうに見えます。第二に、盤面が白黒どちらの手番なのかは決まらない気がします(この局面から始まりこの局面で終わる、つまり手番が入れ替わるような手順があります)。d2にポーンがあればいいのでしょうか。

訳者は、読者が*7をどう読むと読んでいるのか。それが読めません。

コンピュータが仕事を奪う


4532316707新井紀子『コンピュータが仕事を奪う』(日本経済新聞出版社, 2010)(参考文献リスト無し・索引無し)

コンピュータに仕事を奪われないためには、コンピュータには難しいが人間ならできる、クラウドソーシングによって労働の単価が下がらないスキルを身につけておく必要がある。本書では、現時点でのその境界が、わかりやすい例を使って説明されている。計算はコンピュータに任せて「筋」がわかればよい「第二言語として数学が話せる能力」が推奨されているが(p.193)、それを身につければよい理由はもう少し説明がほしかった。プログラミング能力のほうがいいような気がするが、いずれにしても、それを身につけられない多くの人は、働かないと生きられない社会ではつらい状況に追い込まれるだろう。

細かいこと(第1版第1刷)

  • p.103 フェルマーの最終定理の式?
  • p.121 クラウドソーシングが可能でも、労働力は限られているため、必ずしも労働の単価が世界の最低賃金まで下がるわけではないと思う。
  • p.194 数独とクロスワードパズルの話では,数独というゲームの難しさを知っているかどうか(見積もれるかどうか)が大事ではある。囲碁とクロスワードパズルでも似たような話にはなるが,逆の結論になるかもしれない。

数学ガールのミルカさんが「こうなる」とひと言発する間にやっていること(ウラムの螺旋)


4797374152結城浩『数学ガールの秘密ノート 整数で遊ぼう』(SBクリエイティブ, 2013)(索引あり・参考文献リストあり)にウラムの螺旋が出てきます。

100くらいまで描いたところで、

「あ、あたしっ、この先にも興味があります。ぐるぐるぐるぐるぐるぐるぐる……とずっと続けたらどんな図形が表れるんでしょう」

と言うテトラちゃんに応えて、

「こうなる」

と言ってミルカさんがかなり大きなウラムの螺旋を見せています。(p.70)

「ウラムの螺旋」で検索すればぱっと出せそうな気もしますが(インタラクティブなものなんかも)、本書で描かれているのは1から始まるよくある螺旋ではなく、0から始まる螺旋なので、そうでもないかもしれません。そもそもミルカさんは、「こうなる」といいながらウェブ検索をするキャラではありません。

ですから彼女は、「こうなる」とひと言発するわずかの時間でウラムの螺旋を描くスクリプトを書いているんだと思うのです。(彼女はノートPCを持ち歩いている設定でしたっけ?)

そんなことができるのかと思って最初に思いつくのはこんなスクリプトです(Mathematica)。UMMでも動きます。

spiral[size_, start_] := With[{center = Ceiling[(2 size - 1)/2]},
  Module[{
    m = Table[start, {2 size - 1}, {2 size - 1}],
    i = start},
   Do[
    Do[m[[r, center + k]] = ++i, {r, center + k - 1, center - k, -1}];
    Do[m[[center - k, c]] = ++i, {c, center + k - 1, center - k, -1}];
    Do[m[[r, center - k]] = ++i, {r, center - k + 1, center + k, 1}];
    Do[m[[center + k, c]] = ++i, {c, center - k + 1, center + k, 1}],
    {k, 1, size - 1}];
   ArrayPlot[PrimeQ[m] /. {True -> 1, False -> 0}]]]

これで「spiral[4, 0]」などとすればウラムの螺旋を描けますが、会話のテンポはかなり遅くなるでしょう。

会話のテンポを自然なものに保つためには、もっとコンパクトなスクリプトを書けなければなりませんが、すぐには思いつきません。(かつて書いたスクリプトがノートPCに保存してあった?)

というわけで、彼女は優秀な高校生だという物語の設定は、そのとおりだと思いました。

会話形式で書かれている数学ガールには、会話のペースに合わせてできるものだろうかと考えながら読む楽しみがあります。

せっかくなので、サイズを大きくしたときの変化を見てみましょう。

Animate[spiral[size, 1], {size, 1, 100, 1}]

サイズを大きくしたときの変化

中心の数を変化させたときの様子も見てみましょう。

Animate[spiral[50, start], {start, 0, 100, 1}]

中心の数を0から100まで変化させた様子

Wolfram CDF Playerがインストールされていれば、インタラクティブに調べられます。


数学小説


4794219555ガウラヴ・スリ、ハートシュ・シン・バル『数学小説 確固たる曖昧さ 』(草思社, 2013)

「数学が人生に意味を与えるか」と問われたら、たいていの人は「そんなことはない」と答えるだろう。数学を純粋に楽しんだり、そこに美を見出したりする人でもやはり。しかし、数学「も」人生に意味を与えることができるかもしれない。数学とフィクションを組み合わせたこの物語は、数学的な題材を紡いでつなげてある牧師の言葉(≠伝導の書第一章)に行き着く。題材は平凡で現実味に乏しいが、「数学小説」としては成功している。

UBASICの動かし方


吉田武『オイラーの贈物』をまじめに読んでみるという話をしたら、「Windows 7 64bitしかないのですが、どうしたらいいでしょう」と訊かれました。

『オイラーの贈物』で使われているUBASICは、DOS用に開発されたBASICですが、32bit版のWindowsのコマンドプロンプトなら動きます。残念ながら、64bit版Windows 7では動きません(参考:UBASIC を Windows Vista/7 で動かす方法)。

『オイラーの贈物』は、次の機会にUBASIC以外の言語を採用したほうがいいと思いますが、全文公開されている木田祐司・牧野潔夫『UBASICによるコンピュータ整数論』(日本評論社, 1994)等、UBASICに特化した資料を楽しむには、やはりUBASICに動いてもらわなければなりません。

Widows XPのインストールディスクを持っているなら、仮想マシンにWindows XPをインストールしてもいいでしょう。

Windows 7 Professional以上を使っているなら、XPモードを試してもいいでしょう。

皮肉なことに、これらの方法よりも、Linuxで動くDOSエミュレータを使う方が簡単です。Ubuntuなら、UBASICをダウンロード・展開したディレクトリで、

sudo apt-get install dosbox
dosbox ubv32.exe

などとすれば、UBASICが起動します。日本語は文字化けしますが、とりあえずはよしとしましょう。簡単ですね。

こういうこともあるので、すぐに使えるLinux環境が手元にあるとなにかと便利です。