最近見た数学パズル、あるいは本質を見ることの難しさ
イントロ
数学についての動画を投稿する YouTube チャンネルえびまラボが「平面上の10点は半径1の円盤を敷き詰めて必ず覆えるか?」という問題を紹介していた。
この問題の考案者はパズル作家の稲葉直貴氏で、この問題を考案した際の経緯が、本人が日本オペレーションズ・リサーチ学会に寄稿した記事パズル作家の発想法に書かれている。
本題
同記事には興味深いパズルが載っていた。
問題
フエール博士は非常に興味深い現象を発見した.細菌A は,1 分経過するごとに1 匹の細菌Bを食べ,2 匹に分裂する.これに対し,細菌B は仲間たちが食べられるたびに,2 匹に分裂するのだ.今,細菌B が30 匹入っている瓶の中に,分裂したばかりの細菌A を1 匹入れたとすると,この瓶の中から細菌B がいなくなるのは何分後か.
想定された解答
この問題は有名な問題 The Lost Hat の応用であるという。これはボートの速度・川の流速・落とした帽子までの距離が与えられたうえで帽子に追いつくまでの時間を求める問題であるが、帽子・ボートともに同じだけ川の流れの影響を受けるため、川の流速は無視してただ距離を速度で割ればよいのであった。一見これら2つの問題は似ても似つかないが、細菌の問題にも川の流速と同じく無視しても良い要素がある――細菌の分裂である。分裂の前後で細菌A 1匹あたりの細菌Bの数は変化しないため、細菌が分裂しないものと考えてもBがいなくなる時間に影響はなく、答えは30分後となる。
Python による検証
この理屈が本当に有効なのか俄には信じがたかったので、 Python で検証を行ってみた。
Python コード
a = 1
b = 30
t = 0
while b > 0:
t += 1
b -= a; a *= 2
b *= 2
print(f"{t = }, {a = }, {b = }, {b/a = }")
出力
t = 1, a = 2, b = 58, b/a = 29.0 t = 2, a = 4, b = 112, b/a = 28.0 t = 3, a = 8, b = 216, b/a = 27.0 t = 4, a = 16, b = 416, b/a = 26.0 t = 5, a = 32, b = 800, b/a = 25.0 t = 6, a = 64, b = 1536, b/a = 24.0 t = 7, a = 128, b = 2944, b/a = 23.0 t = 8, a = 256, b = 5632, b/a = 22.0 t = 9, a = 512, b = 10752, b/a = 21.0 t = 10, a = 1024, b = 20480, b/a = 20.0 t = 11, a = 2048, b = 38912, b/a = 19.0 t = 12, a = 4096, b = 73728, b/a = 18.0 t = 13, a = 8192, b = 139264, b/a = 17.0 t = 14, a = 16384, b = 262144, b/a = 16.0 t = 15, a = 32768, b = 491520, b/a = 15.0 t = 16, a = 65536, b = 917504, b/a = 14.0 t = 17, a = 131072, b = 1703936, b/a = 13.0 t = 18, a = 262144, b = 3145728, b/a = 12.0 t = 19, a = 524288, b = 5767168, b/a = 11.0 t = 20, a = 1048576, b = 10485760, b/a = 10.0 t = 21, a = 2097152, b = 18874368, b/a = 9.0 t = 22, a = 4194304, b = 33554432, b/a = 8.0 t = 23, a = 8388608, b = 58720256, b/a = 7.0 t = 24, a = 16777216, b = 100663296, b/a = 6.0 t = 25, a = 33554432, b = 167772160, b/a = 5.0 t = 26, a = 67108864, b = 268435456, b/a = 4.0 t = 27, a = 134217728, b = 402653184, b/a = 3.0 t = 28, a = 268435456, b = 536870912, b/a = 2.0 t = 29, a = 536870912, b = 536870912, b/a = 1.0 t = 30, a = 1073741824, b = 0, b/a = 0.0
30分後に細菌Bがきっちり0個になること、B/Aの比が1分に1ずつ減っていることがわかる。
微分方程式による解法
このような現象が必然的であることを確認するため、数値計算ではなく解析的に解きたくなったので、分裂による変化を連続関数で近似して微分方程式を立ててみた (差分方程式が解ければそのまま扱えるのかも) 。初期条件と単位ステップあたりの変化を記述するのは Python でやったことと共通だ。
時間の単位を分としているため、第2式の の係数 (捕食によるBの減少) を 1 [min⁻¹] とすることができる。また、1分毎に2倍という条件から
とわかる。
細菌A 1個あたりを考える
細菌A 1個あたりのBの数を考えるため、を一つの変数とみなしてこれを微分する (商の微分公式が覚えられないため、逆数をマイナス1乗とみなして積の微分でやっている) 。
ここで立てた微分方程式を代入すると、
となる。すなわち、 はきれいに消え、
の変化量は分裂速度や2種の細菌の量によらず一定であることがわかる。また、この式の両辺を
で積分すると
となり、 は線形に減っていき 30 分後には 0 になることがわかる。 Python で確認した現象は必然だったといえる。
積分因子法で機械的に解く
この微分方程式を正攻法で解くとしたらどのような方法になるのか気になったので、ChatGPTに解いてもらった (この程度ならハルシネーションなく解けるようだ) 。まず については変数分離法で簡単に解け、
。これより
について、
となるが、ここで両辺に積分因子
をかける。すると
となり、この左辺は を微分した形になっているので、
が導かれる (この変形がピンとこないのだが、微分して元の形に戻ることは確認できる) 。あとは両辺を積分して
初期条件より なので、
となり、30分後に細菌Bが消滅することがわかる。
考察
ところで、積分因子としてかけた だが、これは要するに
だ (マイナス1乗は逆数なので) 。このことから
- 細菌A 1個あたりを考えるとうまく解けるのは突飛なひらめきではなく必然である。
- 上記の2つの解法は本質的には同一である。
などと言うことができるのかもしれない。
おまけ
冒頭で紹介したえびまラボの別の動画では、足して15になる3つの数を取るターン制ゲームの必勝法を考える問題が出題される。動画を見進めるとこれもまた、一見まったく異なる2つの問題が本質的に同一である例であるとわかる。
ラテン語をベースにした人工言語の提案
概要
本記事では、ラテン語を少し簡単にした人工言語をいくつか提案する。同様の人工言語にジュゼッペ・ペアノによる無活用ラテン語があるが、ここで提案するのはもう少し単純化の少ないものである。ただし本記事は細かいところを詰めていないアイデアメモであり、また、よしんば完成したとしても、実用するための言語というよりは古典ラテン語を学習する前の踏み台といった位置づけを想定している (実用するためのラテン語系人工言語としては Interlingua——前述のペアノの言語のことではなく IALA によるそれ——で十分だと考えている) 。
第3変化名詞に関する改造案
第3曲用は理不尽である。このことはラテン語をある程度覚えたら忘れてしまいがちだが、思い出すためには lēx, lūx, nox をその属格形 lēgis, lūcis, noctis と見比べるとよい。主格形から語幹が定まらないのだ。
以下の改造案では、主格形さえ見れば残りの形が導けるようにしている。この改造を名詞以外のどの品詞——たとえば形容詞や、動詞の現在分詞など——まで適用するかなどは未定である。
主格を属格と同形とする
第3曲用をi幹型、すなわち -is, -is, -ium 型に統一する。主格と属格が同形になるが、そのような語はもとからあるので大きな問題はないはずだ。言語名は「第3曲用イオタ化ラテン語」としたい。英語では Latin with Iotacized Third Declension だろうか。
第3変化のないラテン語
第3曲用の語幹に、名詞の性の応じて -ius, -ia, -ium をつけて第1または第2変化とする。 言語名は「第3変化のないラテン語」、本言語自身で Latīna sīne Tertiā Dēclīnātiōniā とする。
動詞に関する改造案
第1活用化ラテン語
ラテン語 「泳ぐ」には nō と natō がある。後者は前者の完了分詞語幹に -ō をつけることによって規則活用化したものに見える。本改造案ではこのことをすべての動詞に拡大して、完了分詞語幹に -ō をつけることによってすべての動詞を第1活用にする——それも、 -ō, -āre, -āvī, ātus 型の最も規則的なパターンに。もとからそのような型の動詞はそのまま用いる。完了分詞語幹が存在しないならば、現在形語幹に -itō をつけて第1活用化する。
注意点として、もとから第1活用だが上記の「規則パターン」でないものを規則パターンとして用いて良い、とはしない。これを有効にすると、この言語を覚えたあとで古典ラテン語作文を行うときに特に悪影響があるだろうと判断した (ただでさえ混同による弊害があるであろう点には自覚的である) 。
ラテン語の vēnī, vīdī, vīcī 「来た、見た、勝った」を本言語に訳すと ventāvī, victāvī, vīsāvī である。なお古典ラテン語に videō に関連する vīsō があるが、第3活用である。
コピュラ動詞 sum については、上記の通り esitō とする、esō などと定める、ラテン語 stō を sum の意味で用いる (stō にあたる本言語の単語は statō) 、などを考えた。 (追記: ラテン語の訓練用という目的のためには、 sum は唯一の不規則動詞としてそのまま使うのが良さそう。)
本案の着想元には nō/natō のペアの他に bibō/pōtō があったのだが、後者の語幹が前者の完了分詞語幹だというのは勘違いだった (特にひねりもなく bibitus) 。
Viva la Vida (Coldplay) の音韻論
Viva la Vida とは
Viva la Vida は、イギリスのロックバンド Coldplay による楽曲である。その歌詞の内容としては、あるとき強大な権力を手にし、のちに没落した人物が自身について語る形で歌われている。同曲の収録アルバムのジャケットにはドラクロワによる絵画「民衆を導く自由の女神」が起用されており、曲の主人公の繁栄からの凋落がフランス革命に重ね合わせられている。
歌詞
あるときこの曲の歌詞を歌える程度に覚えようと、 YouTube で黒背景に白文字の歌詞動画——この目的のためにはこの形式が気に入っている——を視聴していたところ、サビの歌詞に仄かな違和感を覚えた。問題の部分は以下である。動画とは少し表記が違うがこれは Genius Lyrics による。
I hear Jerusalem bells a-ringin'
Roman cavalry choirs are singin'
Be my mirror, my sword and shield
My missionaries in a foreign field
ここで ringin'–singin' のペアと同様の音符の並びで field–shield の韻を踏んでいる。これは後者のペアも前者と同様に2音節で発音されていることを意味しそうだ。しかし後者は /iː/ を唯一の母音とする一音節語のはずだ。また、のちの "It was a wicked and wild wind" の wild の部分も2音節とっているように聞こえる。
Dr Geoff Lindsey による英語音韻論
違和感の一方、これに関連する話題について語っていた動画の存在も思い出した。以前は長さゆえに流し見にとどめていたものだ。それが Dr Geoff Lindsey による Why these English phonetic symbols are all WRONG である。
この動画では英語音韻論における新理論が語られている。見たところイギリス英語についてのものだが、これは Coldplay の出身地に合致している。
この理論によれば、英語の長母音および二重母音は「母音 + 半母音」の2音素に分析される。すなわち、例えば [iː] [uː] はそれぞれ /ɪj/ /ʉw/ と分析され、[aɪ] [aʊ] はそれぞれ /ɑj/ /aw/ と分析される。
この分析による利点の例は——ときどきバズる「理系方言」で言い換えると「この分析の何が嬉しいかというと」——以下の通りである。
実際の発音と合致する。従来の理論で「長母音」である /iː/ /uː/ の実際の発音は [ɪj] [ʉw] のような二重母音に近い。
基本的に現れないはずの母音連続 (hiatus) がなぜ時に現れるように見えるのかを説明する。すなわち、そのような場合には実際には母音は連続していない。 例えば chaos (伝統的には /kɛɪɑs/) はこの理論では /kɛjɑs/ であり母音は連続していない。
Linking R の起こる条件を説明する。実際には separating R と呼ぶほうが合っている。例えば star /stɑː/ に -ing /ɪŋ/ を接続すると母音連続を回避するために r が挿入されて starring /stɑːrɪŋ/ となる。一方で see /sɪj/ から seeing /sɪjɪŋ/ ではそれは起こらない。
Pre-L breaking を説明する。これは例えば file が [faɪəl] と発音される現象である。この分析では接近音同士である j と l の衝突を回避するために ə が挿入されると説明できる。
Viva la Vida の歌詞において field, shield そして wild が2音節で発音される現象も pre-L breaking の一例だったというわけだ。現象の存在を知ったのみならず、これらの語が /fɪjəld/ /ʃɪjəld/ /wɑjəld/ と音写できることも学ぶことができた。
おまけ
英語版 Wikipedia で pre-L breaking を検索すると、English-language vowel changes before historic /l/ という記事にリダイレクトされる。そこでは fill–feel merger や full–fool merger といった現象が多数紹介されており、そんなにも多くの場合で発音の区別がなくなりうることに驚くが、先述の分析を知っているとある程度納得できるものだ。また参考文献欄には先程の動画の投稿者の著書 English After RP: Standard British Pronunciation Today を見つけることができる。
さらなるおまけ
以上の出来事をブログ記事にまとめようと思ったきっかけは、ニコニコ動画の「アイドルマスター ミリオンライブ!」12話で REFRAIN REL@TION が流れるシーンについたコメント「Coldplayみがある」「Viva L@ Vida」だった。
動画視聴ノート: The Map of Particle Physics | The Standard Model Explained (Domain of Science)
万物は原子から構成される。Atom 「原子」という語はギリシャ語の ἄτομος「切ることのできない」に由来するが、にもかかわらず原子を構成する下位の単位の存在が明らかになっている。また、量子力学以降の物理学では力の挙動も粒子によって記述される。これらの関係を整理したものが標準模型だ。
以下の動画は、インフォグラフィックスによって科学を解説するチャンネル Domain of Science による標準模型の解説である。
この動画をツイッターでシェアする際に復習のための簡単な要約をつけたが、これを文字数や書式の制限のない環境のために書き直したものが以下である。
- Fermions
- Quarks (u, d, c, s, t, b) (R, G, B) (and antiquarks)
- Leptons (e⁻, μ⁻, τ⁻, νe, νμ, ντ) (and antileptons)
- Bosons
- Gauge bosons (g(…), γ, Z⁰, W±)
- Scalar boson (H)
(グルーオンの種類についての説明は諦めている)
「下手な英語に見えるが実はドイツ語……嘘だけど」3選
嘘じゃない例
日本語の外来語は英語由来のものが多いが、英語に似た語があるものの外来語としての借用元は他の外国語、というものもある。このような外来語は英語以外の外国語に馴染みのない人が見ると「下手な英語」「日本語訛り」「ローマ字読み」のようにも見えるかもしれない。例えば「エネルギー」という日本語は一見英語の energy [エナジー] をローマ字読みしたようにも見えるが、実際にはドイツ語の Energie [エネルギー] に由来する外来語である。
(追記) また、このような外来語の代表例に化学物質名がある。例えば、「アルカン」「アルケン」「アルキン」はそれぞれ、英語の alkane [アルケイン], alkene [アルキーン], alkyne [アルカイン] ではなくドイツ語の Alkan [アルカーン], Alken [アルケーン], Alkin [アルキーン] に由来する。 (追記ここまで)
以下はこれと逆に、一見「英語の日本語訛り」ではなくドイツ語由来に見えるが、実際に「英語の日本語訛り」である例である。
ベッドの「ベット」という発音
ドイツ語でベッドを Bett [ベット] という。実際には、日本語で「ベッド」が「ベット」と発音されたとしても、それは促音と濁音の組み合わせが避けられているだけである。
アイスクリームを意味する「アイス」
ドイツ語でアイスクリームを Speiseeis [シュパイゼアイス] というが、これを単に Eis [アイス] ともいう。ただし英語と同様に第一義は「氷」である。
実際には日本語の「アイス」は「アイスクリーム」の省略された形である。
「〇〇に関係する人」を意味する接尾辞「〇〇ラー」
ドイツ語にも英語と同様に行為者名詞を作る接尾辞 -er があるが、これが場合によっては -ler という形になる。例えば Wissenschaft [ヴィッセンシャフト] 「科学」に対する Wissenschaftler [ヴィッセンシャフトラー] 「科学者」 などである。
実際には日本語の「マヨラー」などの「ラー」は、「安室 (奈美恵)」→「アムラー」などの例が再分析されたか、母音の衝突を防ぐために r を挿入しているかで、いずれにしろ英語が由来である。
つまみ食い言語学習者のためのデーヴァナーガリー文字むりやりニーモニック
説明
サンスクリット語やヒンディー語に使われる文字・デーヴァナーガリーを記憶するために、形と音が似ている他の文字に無理やりこじつけて覚える方法を記す。この「他の文字」はラテン文字・ギリシャ文字・キリル文字・アラビア文字・ヘブライ文字などから見つけている。一部は非常に無理があるが、何もないよりは覚える役に立つと信じたい。
以下、デーヴァナーガリー文字の直後の発音表記は IPA ではなく IAST によるラテン文字転写である。
母音
अ [a] / आ [ā]
アラビア文字のアイン (ع) が書字方向に合わせて裏返ったもの——これがゼロ子音を表しているものとする。その次の縦棒がアラビア文字アリフ (ا) で母音 [a] を表している。長母音字ではこのアリフが1つ増える。子音に付いて母音 ā を表す記号 (ा ) も同様である。
इ [i] / ई [ī]
全体的なシルエットがラテン文字の J に似ている (J は I から派生した文字である) 。母音記号 ि ・ ी も J を回転・反転したものに見える。短母音の記号は子音に前置するが、これは i を前置して子音の口蓋化を表すやり方 (e.g. アイルランド語の語末の子音) のようなものとみなせる。
उ [u] / ऊ [ū]
ラテン文字 u の筆記体を左に傾けたもの。長いほうはリトアニア語の ų [uː] のようにオゴネクが付く。母音記号の ु は U 、その長いバージョン ू はそれがひっくり返る (ひっくり返る理由も用意したかったが未定) 。
ऋ [ṛ] / ॠ/[ṝ]
右側が英語の筆記体の r に似ている。左側の K の鏡文字のようなものはヘブライ文字のアイン (ע) だと思えば無視できる (現代ヘブライ語ではゼロ子音のため) 。母音記号の ृ は丸まった r 、長母音の ॄ はそれを2回書く。
ऌ [ḷ] / ॡ [ḹ]
ラテン文字 l の筆記体を逆さにしたもの。長い方はオゴネクが付く。母音記号 ॢ ・ ॣ もこれらの字が小さくなっただけである。
ए [e] / ऐ [ai]
ラテン文字 e に似ている。ヒンディー語で [ɛ] と読む ऐ は、フランス語で同音の è または ê に似ている。このアクサングラーヴまたはシルコンフレックスのような記号 े が子音文字の上に直接付く場合は母音 [e] を表すが、このことはフランス語で全種類のアクサンを受け取る文字が e であることに関連づける。それが2つ付く場合 ( ै) は二重母音 [ai] である。
ओ [o] / औ [au]
[a] と読む文字に記号がついて [o] になるのはスウェーデン語の å に似ている。これは子音文字につく場合にも言える ( ो ・ ौ) 。記号が2つ付くほうが二重母音。
子音
軟口蓋音
क [k]
ヘブライ文字の qof (ק) と対応するラテン文字の q を合わせた形。
ख [kh]
ラテン文字 c を、強調のために白抜き字体にしたもの。
ग [g]
ギリシャ文字のガンマ (Γ) を鏡文字にした形。
घ [gh]
アラビア文字のガイン (غ) 。
ङ [ṅ]
(未定)
硬口蓋音
च [c]
ポーランド語の ć [tɕ] 。
छ [ch]
ポーランド語の cz [ʈʂ] を裏返したもの。
ज [j]
キリル文字ジェー (ж) の左下部分。
झ [jh]
ラテン文字の j が母音字 i を子音文字化したものであるように、母音字 इ [i] を子音文字化したもの。
ञ [ñ]
(追記) ñ のチルダをまっすぐに伸ばして右に 90° 傾けたもの。
そり舌音
ट ठ ड ढ ण が該当するが、そり舌音が組み込まれている他の文字体系を知らないので「そり舌音は丸っこい文字が多い」以上の記憶法を作れていない。
歯音
त [t]
ギリシャ文字タウ (τ) 90° 前転させたもの。
थ [th]
左上の巻いた部分がなんとなくヘブライ文字のテット (ט) と似ている。
द [d]
ラテン文字の d 。
ध [dh]
ギリシャ文字のデルタ (δ) 。
न [n]
(未定)
唇音
प [p]
ギリシャ文字の π。
फ [ph]
上記の प をギリシャ文字の φ に近づけたもの。
ब [b]
中身の斜線の有無で [b] と [v] を区別する方法はヘブライ文字のダゲッシュと似ている。
भ [bh]
(未定)
म [m]
ヘブライ文字のメーム (ם) のように角ばった形。
接近音
य [y]
ラテン文字の y 。
र [r]
ラテン文字 R の一変種 (R rotunda) 。
ल [l]
व [v]
上記 ब [b] を参照。
摩擦音
श [ś]
国際音声記号 ɕ を鏡文字にしたもの。
ष [ṣ]
真ん中の斜線を直立させればキリル文字のシャー (ш) やヘブライ文字のシン (ש) に見える。
स [s]
ドイツ語のエスツェット (ß) あるいはその鏡文字。
ह [h]
下の開口部を閉じているものとみなせばハングルの ㅎ [h] を雑に書いたものに見える。
動画視聴ノート: "How to Use an AR-15" & "How to Use an AK" (Lucky Gunner Ammo)
現代の歩兵の主力武器といえばアサルトライフルであり、アサルトライフルといえばアメリカ合衆国の AR-15 系統のもの (M16 や M4) か、ソビエト連邦の AK シリーズ (とくに AK-47) だろう。これらはゲームでもおなじみであり、現代を舞台とした FPS をプレイすればこれらを見ないことは不可能とすら言える。
YouTube にはそんなライフルの使い方を教えるチュートリアル動画がある。
これらの動画ではじめに教えられることは、他でもない、安全のための心得である。曰く、
- すべての銃を弾薬の込められたものと同様に扱う。すなわち、あなたが銃を装弾されていないと思っていることは以下を無視する理由にはならない。
- 銃を常に安全な方向に向ける。
- 実際に射撃するときまで指を引き金から離しておく。
- 何を撃とうとしているか、およびその後ろと周辺に何があるかを知っておく。
——というものだ。また、銃を扱うとは生死を分ける決断をするということだ、とも。ゲーム由来の興味で見始めたら、銃の元来もつ危険性が喚起されて面食らうかもしれない。