数学

ここでは私の趣味である数学について、素人ながら、ちょこっと書いてみようと思います。
(大学で学ぶレベルの)教科書の紹介と「マッカロのナンバーマシン」という一種のパズルについての話題です。
また、教科書には私の独断と偏見で評価印をつけてみました。解説が丁寧で分かりやすいものほど評価を高く
したつもりですが、あくまでも勝手なものであるので、そのあたりはご了承ください。

教科書の紹介

◎:とても分かりやすい
○:分かりやすい
△:普通かな・・


微分積分

○「微分積分学」伊藤雄二著 朝倉書店
高校でも理系であれば微分積分は習うと思います。この本は高校レベルの数学知識を前提に、大学生が入学してからすぐに勉強するようなレベルの内容になっています。高校での微分積分の場合、図などを使用して視覚的に理解することが多かったと思いますが、それだけではあまり厳密に理論を展開することができません。大学のレベルになると、そのあたりをもっと厳密に議論することになります。極限の定義をもっと厳密に行い、それによって数列が収束するか発散するかの判定を行ったり、三角関数などを数列の極限で定義したりします。
そのような厳密な立場から、微分積分のもっとも基本となるところや、応用性のある部分を特に丁寧に説明しているようです。ただ、重積分の解説などでは一部、厳密に考えると説明の付かない部分があるようです。(立体の面積や体積を求める際の特異点に関する扱い等)これはルベーグ積分論など理解すればある程度カバーできますが、実用上は、実際に面積や体積を求める手順を理解することの方が重要なので、本書ではそこまで言及していないようです。微分積分のような分野は、対象が具体的で、ある程度分かりやすい分野だと思います。これが代数学とかになってくると大変ですぅ。

誤植が少々あるようですが、下記を参照してあらかじめ修正しておけば問題ないと思います。

誤植?かも。。。(第7版にて)

@P17 :例10.2
「紙数」→「級数」

AP198:(44.11)の式
右辺のΣの上の文字「p」→「m」

BP198:例44.7
例44.7の3行目の右辺第2項「(Dif)rcosθ」→「(Dyf)rcosθ」

CP201:(45.6)の式
右辺の第2項に

「(x1-x1^0)(x2-x2^0)・・・(xn-xn^0)」

(ただし「x1^0」は変数xの右下に1の添え字、右上に0の添え字があることを示す)とありますが、これを

「(x1-x1^0)^i1 (x2-x2^0)^i2・・・(xn-xn^0)^in」

(ただし「^i1」はカッコ内をi1乗するという意味で、i1は変数iの右下に1の添え字があることを示す)という風にします。つまりカッコ内をそれぞれi1乗やi2乗するということです。

DP201:(45.7)の式
Cと同様に右辺の
「(x1-x1^0)・・・(xn-xn^0)」



「(x1-x1^0)^i1・・・(xn-xn^0)^in」

とします。

EP242:定義54.3
「集合D⊂R^3が」→「集合D⊂R^2が」


◎「ルベーグ積分」溝畑茂著岩波書店
ルベーグ積分とは普通の積分(リーマン積分と言う)を拡張し、もっと広い範囲の関数について積分が計算できるように工夫したものです。たとえば、ある実数値関数(引数と関数値が共に実数である関数)で、ある1点のみ、そこでの関数値が定義されていないものがあるとして、その関数の積分を厳密に定義したいとき、このルベーグ積分の考え方が必要となります。積分は面積や体積を計算したりすることが多く、感覚的に考えれば、1点が抜けているからといって、面積や体積が変わることはありません。ですから、実際の計算結果というよりも、数学的にそれをどううまく説明するか、という点が問題となるわけです。
本書はルベーグ積分を順序だてて分かりやすく説明しており、最初のいくつかの定義などをちゃんと理解できれば、あとは同じようなパターンでいろいろな関数の積分を次々と理解していくことができるようになっています。また、リーマン積分でも「広義積分」という積分の拡張をします。前述の「微分積分学」や集合論を理解できていれば、よりスムーズに理解できるのではと思います。


△「解析概論」高木貞治著岩波書店
微分積分とルベーグ積分の範囲について記述されています。著者は文化勲章を受章した有名かつスバラシイ数学者で、本書は旧版が出版されて以来、日本語で数学書を書く際のお手本となってきました。説明文の言い回し等、多少古くさいところもありますが、それが却って日本人的な考えの筋道に沿っているとも言え、それなりの良さがあると思います。図なども多く分かりやすいと思います。有名な「高木関数」(いたるところ微分不可能な連続関数)は1903年に著者が考え出したものです。




○「多変数解析学」スピヴァック著齋藤正彦訳東京図書
多変数関数の微分積分について、さらに厳密に定式化して理解するための理論が述べられています。上記「微分積分学」の重積分などで厳密に述べきれなかった個所などをカバーするのに良いと思います。また、あらかじめ集合・位相論を理解しておく必要があると思います。





線形代数

◎「新版線形代数」宇麼谷教明・竹内康滋・廣森勝久共著培風館
線形代数とは、言ってみればベクトルとか行列とかを扱うものです。高校では私のころは主に2x2行列の性質について、いろいろとやっていました。この本では高校のレベルを前提に、一般の行列(4x3や5x5とか)の性質を分かりやすく解説しています。行列式の一般的な定義や、階数、固有値や固有ベクトルについて、段階を追って学べます。
数値計算や回路設計のソフトで「matlab」(マトラブ、マットラブ)というのがありますが、そのソフトで行列をいぢって遊んでみたい!という人が万が一いらっしゃれば、この本は行列の基礎知識を身に着けるという意味で、よいのではないでしょうか。また、これも誤植が少々あるようです。

誤植?かも。。。(新版第10刷にて)

@P43:2行目の式の右側の説明
「Aijは(nI,nJ)型」→「Xijは(nI,nJ)型」

AP57:定理2.1.4の証明
証明の6行目「命題1.2.1の証明から」→「補題2.1.2の証明から」

BP112:ページ先頭の(H*)に関する式
「0=0」の個数が「m-r個」→「n-r個」

CP131:ページ後半の「F(x,y,z)=・・」の式に関するAの説明
行列Aの(1,3)要素「e/2」→「f/2」
行列Aの(2,3)要素「f/2」→「e/2」
行列Aの(3,1)要素「e/2」→「f/2」
行列Aの(3,2)要素「f/2」→「e/2」

DP131:ページ後半の「F(x,y,z)=・・」の式に続く説明文
「(*)式を用いて」→「(**)式を用いて」

EP164:ページ最初の(2)の行列
(1,2)要素「1/root2」→「i/root2」
(2,2)要素「i/root2」→「1/root2」

FP182:ページ前半、「F(x,y,z)=・・」に関する式の右辺
「[xyz]・・・」→「[XYZ]・・・」

GP183:ページ中ほど、「x''=・・・」(xは太字)に関する式
縦ベクトルの各要素を太字から通常の字体にもどす。
「x''」(xは太字)→「x''」
「y''」(yは太字)→「y''」
「z''」(zは太字)→「z''」

HP186:問6.1
「命題3.6.1において」→「命題4.6.1において」
「x'=t+T'xとすれば」→「x'=t'+T'xとすれば」
「t=-Tt、T'=T^-1であることを」→「t'=-Tt、T'=T^-1であることを」

IP194:(1-2)および(1-3)の文章
「たとえば・・・α3>0で」→「たとえば・・・α3<0で」

集合論

◎「集合・位相入門」松坂和夫著岩波書店
集合論とは、簡単に言えば、ものの集まりの性質を数学的に考えたものです。高校でも集合というのを習ったと思いますが、集合論というのは、考察の対象を数という概念に限定せず、それよりも広い、抽象的な概念でいろいろなことを考える学問です。
現代の数学では、いろいろなことを集合を使って定義したり説明する場合が多いと思います。ですから集合論が理解できれば、いままで習った他の数学の理論が、集合論での理論の特殊な場合として捉えられる場合が多々あります。集合論を基礎に、いろいろな分野の数学が構築されていることが分かってきます。集合論を勉強することは、数学の抽象的な分野に一歩踏み出したことになり、高校までの数学とは明らかに、ちょっと違う印象をもたれる方もいるかもしれません。

集合・位相入門は、初めて集合論を勉強される方に向いていると思います。解説がすごく丁寧で、誤解や混乱しやすい個所はしっかりサポートされているので読んでいて安心感があります。

誤植?かも。。。(第31刷にて)

@P135:23行目の文章
「(x1,・・・xn,x)が1次従属」→「(x1,・・・xn,y)が1次従属」

複素解析/複素関数

◎「複素関数要論」青木利夫・樋口禎一共著培風館
複素関数論とは、解析学で学ぶような関数の性質を、複素数(実数+虚数)の範囲にまで拡大して考えるものです。高校でも複素数を習ったと思いますが、それらを使って微分や積分をしたり、複素関数の性質を細かく調べたりするのが主な内容です。
中でも留数定理と呼ばれる、積分を計算するときに大事な定理は、数学以外でも応用が利くので広く使われているようです。また、そのままでは計算できない実積分も、複素関数の積分と捉えなおせば計算できてしまうことがあり、不思議な感じがします。複素関数を勉強すると、まずこの留数定理を理解するための筋道を順番に数学的に理解していく流れになると思います。

本書の場合、重要な部分を効率よく簡潔に説明しているので、比較的読み進めやすいと思います。ページ数も150ほどなので、何か気楽な感じがします。実数の微分積分や、位相論を理解していると、より早く理解が進むと思います。

誤植?かも。。。(初版第23刷にて)

@P5:問題6
問題の前提条件として「|α|=1」が漏れている。


△「複素解析」高橋礼司著東京大学出版会
複素関数論を一通り理解された方が読む方がよいと思います。理論の展開の仕方も、上記「複素関数要論」と異なるところがあり、いろいろな考え方ができるんだということが分かると思います。また、歴史的な発展を踏まえた記述もあり、読み物としても配慮されているようです。





代数学

◎「代数系入門」松坂和夫著岩波書店
代数学は集合の要素に対して、普通の数と同じように演算(足し算、掛け算、その他)を考え、その集合と演算を組み合わせたもの(群、環、体などと呼ばれる)の性質を探る分野です。代数学も数学の抽象的な分野で、最近の数学は主にこのような抽象的な分野で研究されています。というのも、数学の難しい問題を解くとき、その問題をそのまま考えるよりも、いったん抽象的な概念に捉えなおして、その抽象的なレベルで考察をすすめ、その結果を再び具体的なものに当てはめて考えると解決する場合があり、このような抽象的な分野の研究が非常に役に立つからです。
最近証明されたフェルマーの最終定理(フェルマー・ワイルズ・テイラーの定理)も、問題の見た目は簡単ですが、それをそのまま解くことは難しく、代数学などの抽象的な理論やアイデアを駆使して証明されたものです。

本書は、前述の「集合・位相入門」の著者によるもので、「集合・位相入門」の姉妹書となっています。ですから続けて読めば、これらの抽象的な概念を一通り系統だてて理解することができると思います。


○「群論への30講」志賀浩二著朝倉書店
代数学の一分野である「群論」について、数学をあまり知らない人でも興味をもって読めるように、解説したものです。定理とその証明を単に並べるのではなく、目に見える身近な例(対称図形:シンメトリー、立方体の回転など)から一般論へ発展させていく手法で、群論のコンセプトなどがよく分かります。
また、各章の終わりにTeaTimeがあり、素朴な疑問やそれに対する回答(解答ではなく)を通して、群論の考え方に共感がもてるような構造になっていると思います。問題などは付属していないので、勉強というよりは興味本位で気楽に読むような本になっていると思います。また、単純群と呼ばれる群についての最近のトピックなどもあり、興味が湧く内容になっています。



△「代数学」長尾汎著朝倉書店
代数学の各定理や証明をまとめたものです。単独で読み進めるには結構難しい内容となっているので、他の本を読みながら辞書代わりに使うのでもいいかな、と思います。







微分方程式

○「常微分方程式」高野恭一著朝倉書店
常微分方程式とは1変数の微分方程式のことです。微分方程式というのは、式の中に関数の微分が入っている方程式です。
微分方程式は科学のいろいろな分野で顔を出します。物理現象を解明したりするのにも使われます。実験で観測したデータから方程式を作ると、それが微分方程式になっていて、それを解くことにより、法則がより明らかになるという形が多いと思います。

本書はいろいろ種類の微分方程式を解説しており、実際に物理などで役に立つ記述が多いと思います。手法だけでなく、理論や証明などもきっちり理解したい場合は、微分積分や線形代数、および複素関数についての知識が必要になると思います。

誤植?かも。。。(初版第1刷にて)

@P29:定理4.6.(コーシーの存在定理)
「・・が区間I'=[z-r',a+r']」→「・・が区間I'=[a-r',a+r']」

AP30:17行目の式
「|xm(t)-xm(t')|<δ」→「|xm(t)-xm(t')|<ε」

関数解析

△「関数解析」増田久弥著裳華房
関数解析という分野は、いわゆる「無限次元(!?)の空間での写像のいろいろな性質を調べる」学問で、物理の量子力学などの基礎を説明するのに必要な理論ともなっています。ちなみに写像のことを関数解析では作用素と言ったりします。数学的の中でも比較的新しい分野で、それだけに高度な理論と言えると思います。

本書はその中で基礎的な部分を記述していて、ある程度入門用として取り組むには良いのではないかと思います。ただし、関数解析自体が結構難しいので、前提知識として微分積分、線形代数、複素関数、常微分方程式、ルベーグ積分などが必要となります。
また、記述の中に特に説明なしで使われている記号などがあります。これは関数解析独自のものではなく、上記の前提となる分野で普通に使われている記号なので、それにも慣れておく必要があると思います。

確率統計

△「確率・統計入門」小針?宏著岩波書店
確率統計は高校でもいろいろ習ったと思います。高校で習ったものでは、一部の限定された条件での確率を求めたり、推定計算したりしていましたが、現実にはこれだけでは処理できない問題もたくさんあります。
確率・統計論を勉強すれば、いろいろ複雑なケースで確率を求めたり、テストなどで良く使われる偏差値の仕組みを理解する、あるいはコンピュータのシミュレーションを作ったりするのにも役に立つのではないかと思います。

本書は確率統計に関して、いろいろなモデルを別個にとらえるのではなく、ある程度順を追って理解を進められるように配慮されていると思います。また著者がユニークな方で、説明文や問題文を読んでいると、面白い教授の授業を聞いているような感覚になります。著者のセンスに合う方であれば、スムーズに読み進めることができると思います。
 

マッカロのナンバーマシン

「マッカロのナンバーマシン」とは、本「数学パズル美女か野獣か?レイモンド・スマリヤン著阿部剛久訳」に登場する機械の名前です。この本は数学的なパズルをいくつも紹介しており、いろいろと興味深いパズルを楽しむことができます。
マッカロのナンバーマシンもその中のひとつで、マッカロという風変わりな男とクレイグという警視が登場する物語の中で出てきます。以下ではマッカロのナンバーマシンに関するトピックを、上記の本を参考に紹介いたします。

第1章「奇妙なナンバーマシン」

クレイグ警視は何年も会っていない旧友、ノーマン・マッカロをたずねに出かけた。マッカロは風変わりで、大学時代はいつもいろいろな道具を発明していた愉快な男であった。近代的な計算機が発明される前、マッカロは手作りで機械式の計算機を組み立てていた。

「それは何をやるものなんだ?」とクレイグがたずねると、
マッカロは
「このマシンにひとつの数字を入れると、しばらくしてひとつの数字が出てくるんだ」
と答えた。

「どんな数が出てくるんだ?同じ数、それとも違う数なのか?」
とクレイグ。

「それはどんな数を入れたかによるんだ。あと、これはすべての数字を受け付けるわけではないんだよ、ほんの一部だけ。このように受け付ける数字のことを受け入れ可能数と呼ぶんだ。」

クレイグは言った。
「どんな数が受け入れられるんだ?また、どんな受け入れ可能数を決めたとしても、どんな数が出てくるか、ちゃんとした規則はあるのかね?」」

「もちろん。僕の装置はでたらめじゃないよ。ちゃんとした法則があるんだ。法則は以下の通りだよ。」マッカロは説明した。

規則0
・マシンが扱える数とは、正の整数のみ。負の数や分数などは扱えない。
・数Nは普通のやり方でアラビア数字1〜9の連なりとして書かれる。数の中に0が含まれている場合は扱えない。

マッカロは続けた。
「たとえば、23とか5492のような数が受け入れ可能なんだ。502や3250607は受け入れられない。あと、二つの数N,Mがあったとき、NMとはMのN倍では無いんだ!NMとははじめにNのアラビア数字を書いて、その後にMのアラビア数字を続けたものなんだ。だからたとえば、Nを53、Mを728とすれば、NMは53728のことなんだよ。」

「なんとも奇妙だな」クレイグは叫んだ。

「そうかもしれない、だがこれはマシンが一番理解している操作なんだ。」マッカロは答えた。

「次に操作規則を説明しよう。」


第2章「マシンの操作規則」

マッカロは言った。
「次に操作規則を説明しよう。Xが受け入れられて、それをマシンに入れたとき、Yが出てくる数であれば、数Xは数Yを生じるということにする。最初の規則は以下の通り。」

規則1
・任意の数Xに対して、数2X(つまり2にXを続けたもの)は受け入れ可能であって、2XはXを生じる。

「たとえば、253は53を生じる。27482は7482を生じる。23985は3985を生じる。つまり、2Xをマシンに入れると最初の2が取り除かれて、残されたXが出てくる、ということだ。」
「なるほど」クレイグは答えた。「他の規則は何だ?」

「もうひとつだけ規則があるんだ」とマッカロ。
「だが、最初に言っておくと、任意の数Xに対して、数X2Xは特に重要な役割を担う。よって、数X2Xのことを数Xの同伴と呼ぶんだ。たとえば、7の同伴は727、594の同伴は5942594だ。それを頭に入れて次の規則を説明しよう。」

規則2
・任意の数XとYに対して、XがYを生じるならば、3XはYの同伴を生じる。

「たとえば、規則1から27は7を生じるから、327は7の同伴すなわち727を生じる。このように327は727を生じる。また、2586は586を生じる。よって32586は586の同伴を生じる。それは5862586である。」マッカロは言った。

ここで、マッカロは数32586をマシンに入れた。するとマシンはしばらくうなったあと、ついに数5862586が出てきた。

マッカロは言った。
「君が規則を十分把握しているかどうか、少し他の例を考えてみよう。マシンに3327を入れたとする。何が出てくると思う?すでに見たように、327は727を生じるんだ。よって、3327は727の同伴すなわち、7272727を生じることになる。同じように、33327はどんな数を生じると思う?3327は7272727を生じるから33327は7272727の同伴すなわち、727272727272727を生じる。」

「なるほど」とクレイグ。
「だが、いままで君が言った数は、2か3のいずれかで始まっている。たとえば4から始まる数だとどうなるんだ?」

第3章「クレイグの疑問」

「だが、いままで君が言った数は、2か3のいずれかで始まっている。たとえば4から始まる数だとどうなるんだ?」とクレイグは尋ねた。

マッカロは答えた。
「おっと、4から始まる数は受け入れられない。このマシンで受け入れられる数は2か3で始まるものばかりで、しかも2か3で始まる数であっても受け入れられない数もあるんだよ。」

「2か3で始まるどんな数が受け入れられないのか?」とクレイグ。

「たとえばXが単なる2の場合は受け入れられない。というのは、単なる2は規則1か規則2のいずれにも当てはまらないからなんだ。しかし、2から始まる任意の数2Xは受け入れられる。また、すべて3だけからなる数も受け入れられないし、32や332なども受け入れられないことになる。」

マッカロは続けた。
「しかし、任意の数Xに対して2Xは受け入れられるし、332Xや3332Xも受け入れられる。まとめれば、受け入れ可能数とは2X,32X,332X,3332Xなど、3の重複した任意の長さの数字の後に2Xの続く数字である。

ここで、2XはXを生じるし、32XはXの同伴を生じる。さらに332XはXの同伴の同伴、3332XはXの同伴の同伴の同伴を生じるんだ。同伴の同伴のことを二重同伴、同伴の同伴の同伴のことを三重同伴などと呼ぶことにしよう。」

「よく分かったよ」クレイグは言った。
「それで、君の言うこのマシンの奇妙な所っていうのは、どういう所なのか知りたいんだがね?」

「そうだな」マッカロは答えた。
「それは、このマシンがいろんな種類の奇妙なパズルを生み出すところにあるんだ。いくつかを紹介しよう。」

第4章「奇妙なパズル(1)」

マッカロは言った。
「それは、このマシンがいろんな種類の奇妙なパズルを生み出すところにあるんだ。その前に規則をおさらいしておこう。」

規則0
・マシンが扱える数とは、正の整数のみ。負の数や分数などは扱えない。
・数Nは普通のやり方でアラビア数字1〜9の連なりとして書かれる。数の中に0が含まれている場合は扱えない。
規則1
・任意の数Xに対して、数2X(つまり2にXを続けたもの)は受け入れ可能であって、2XはXを生じる。
規則2
・任意の数XとYに対して、XがYを生じるならば、3XはYの同伴を生じる。

「それでは」マッカロは続けた。
「以下の奇妙なパズルが解けるかな?」

@自分自身を生じる数Nがある。つまりNをマシンに入れると、同じ数Nが出てくる。このようなNとは?
【解答はこちら】

A自分自身の同伴を生じる数Nがある。つまりNをマシンに入れると、数N2Nが出てくる。このようなNとは?
【解答はこちら】

B任意の数Aに対し、AYを生じる数Yが存在する。このようなYとは?
【解答はこちら】

C数Nは数N2を生じるとする。果たしてこのようなNは存在するのか?
(解答は上記の本で確認してみてください)


Cの解答はここでは記述いたしません。上記の本で確認してみてください。また、@〜Bについては思考錯誤ではなく、何か解答を導く統一的な方法があるのかどうか?それについても、上記の本に詳しく記述されています。


第5章「マシンの改良」

数日後、クレイグはマッカロを再びたずねた。

「君はマシンの機能を拡張したそうだね」とクレイグ。

「ああ。僕の新しいマシンは古いマシンの規則1と規則2を用いるが、加えて新たな二つの規則があるんだ。」
マッカロは答えた。

「まず、逆さの数とは、逆に書かれた数とする。たとえば5934の逆さの数とは4395だ。さて、新たに加えた規則のひとつは次の通りだ。」

規則3
・任意の数XとYに対して、XがYを生じるならば、4XはYの逆さの数を生じる。

「説明しよう。勝手に数Yを選んでくれ」

「よし」クレイグは言って「7695を選んだとするよ」

「それでは」とマッカロ。
「7695を生じる数Xをとる。つまりXを27695としよう。そして427695をマシンに入れてみよう。」

マッカロは427695をマシンに入れた。するとマシンはしばらくしてから、ついに5967を出したのだった。

第6章「奇妙なパズル(2)」

「次の規則を示す前に」とマッカロ。
「この規則でやれるいくつかの事柄を示してみよう。もちろん規則1と2もいっしょに合わせてのことなんだがね」

「その前に規則のおさらいだ」

規則0
・マシンが扱える数とは、正の整数のみ。負の数や分数などは扱えない。
・数Nは普通のやり方でアラビア数字1〜9の連なりとして書かれる。数の中に0が含まれている場合は扱えない。
規則1
・任意の数Xに対して、数2X(つまり2にXを続けたもの)は受け入れ可能であって、2XはXを生じる。
規則2
・任意の数XとYに対して、XがYを生じるならば、3XはYの同伴を生じる。
規則3
・任意の数XとYに対して、XがYを生じるならば、4XはYの逆さの数を生じる。

「さて。」とマッカロ。

D自分自身を生じる数Nがある。パズル@の解答以外にも、この新しいマシンではこのような数がある。このようなNとは?
【解答はこちら】

E前から読んでも後ろから読んでも同じ数となるものを対称数と呼び、そうでないものを非対称数と呼ぶことにする。自分自身の逆さ数を生じる非対称数がいくつか存在する。そのひとつを見つけられるか?
【解答はこちら】

第7章「最後の規則」

「さて。次に最後の規則の説明をしよう。」

規則4
・任意の数XとYに対して、XがYを生じるならば、5XはYYを生じる。

「ただし、YYとはYの繰り返しのことだ」マッカロは言った。

第8章「奇妙なパズル(3)」

マッカロは言った。
「これですべての規則が出揃った。いままでの規則を整理しよう。」

規則0
・マシンが扱える数とは、正の整数のみ。負の数や分数などは扱えない。
・数Nは普通のやり方でアラビア数字1〜9の連なりとして書かれる。数の中に0が含まれている場合は扱えない。
規則1
・任意の数Xに対して、数2X(つまり2にXを続けたもの)は受け入れ可能であって、2XはXを生じる。
規則2
・数XとYに対して、XがYを生じるならば、3XはYの同伴を生じる。
規則3
・任意の数XとYに対して、XがYを生じるならば、4XはYの逆さの数を生じる。
規則4
・任意の数XとYに対して、XがYを生じるならば、5XはYYを生じる。

マッカロは続けた。
「さて。それでは次のパズルが解けるかな」
マッカロはクレイグに次の問題を出した。

F自分自身の繰り返しを生じる数をみつけよ。
【解答はこちら】

G自分自身の繰り返しの逆さを生じる数を2つみつけよ。
【解答はこちら】

H5NがNの繰り返しを生じるような数Nを見つけられるか?
【解答はこちら】

I自分自身の同伴の繰り返しを生じる数がある。このような数を見つけられるか?
【解答はこちら】

第9章「新たな展開」

「君は承知かもしれないが」とクレイグが突然言った。
「いままでのようなパズルは、すべてひとつの一般的な原理によって解くことができるんだ。」

クレイグは続けた。
「たとえばこのような数も存在するに違いない。自分自身の同伴の逆さの繰り返しを生じる数。自分自身の逆さの繰り返しの同伴を生じる数。その他いろいろだ。」

マッカロは驚いた。
「ぼくはそんな数を探していたんだが、見つけられなかった。」

クレイグは言った。
「ぼくがその原理を君に教えたら、数秒でそんな数を見つけ出せるよ。」

「その原理とはなんだい?」とマッカロ。

「実は。。。」とクレイグ。


クレイグが見つけ出した原理とはなんでしょうか?さらにこの後、クレイグの友人・ファーガッソンによる新たな法則が明らかになります。以降の展開については上記の本を読んでみてください。

第10章「マッカロのナンバーマシン」

最後にマッカロのナンバーマシンを作成しましたのでいろいろ試してみてください。




使用方法
@計算してみる
「入力」欄に入力する数値を入れ、「計算」ボタンを押すと「出力」欄に計算結果が表示されます。

(例)「入力」欄に「21」と入力して「計算」ボタンを押下
→「出力」欄に「1」と表示されます。

A適用規則の変更
ナンバーマシンに適用する規則を変更することができます。デフォルトでは「すべて」(規則1〜4)に設定されていますが、「適用規則」の各ボタンにチェックして、適用規則を変更できます。各規則については本ホームページで紹介した通りです。

B変数の使用
新たな機能として変数を使用できるようにしています。変数はA〜Zおよびa〜zです。

(例)「入力」欄に「2N」と入力して「計算」ボタンを押下
→「出力」欄に「N」と表示されます。

備考
@受け入れ不可な数値について
受け入れ不可な数値を入力すると、「受け入れ不可な数値です」と表示されます。

(例)「入力」欄に「2」と入力して「計算」ボタンを押下
→「出力」欄に「受け入れ不可な数値です」と表示されます。

Aオーバーフローについて
計算結果の桁が1メガ桁(1024x1024桁)を超える場合は、「オーバーフローしました」と表示され、計算結果は出力されません。

B変数の使用について
変数はA〜Zおよびa〜zです。

(例)32A1→A12A1、532n4→n42n4n42n4

このマシンでいう「変数」とは、1桁以上でかつ、各桁が1〜9で構成されているものを指します。たとえば、2Nは必ず2桁以上からなるので、Nが出力されます。(仮に変数が0桁以上だと定めると、出力結果が定まらない場合があることに注意してください)

また、変数の内容によって出力結果が異なるものについては、受け入れ不可とみなされます。

(例)T→「受け入れ不可な数値です」

さらに、各アルファベットの大文字と小文字(Aとa、Bとb・・Zとz)は、互いに「逆さ数」の関係であるというルールがあります。よって、入力に大文字を使用した場合、出力に同じアルファベットの小文字が現れる場合があります。

(例)42A→a、42Ee→Ee

上記例の「42Ee→Ee」は「42Ee→eE」の誤りだと思われるかもしれません。確かに分かりづらいですが、この例は正しい結果です。

具体的な数値で考えてみます。たとえばE=89とすると、eは98を意味することになります。このとき42Eeは428998となり、428998→8998ですので、すなわちEeが生成されることが分かります。これはEeが対照数であると考えても明らかです。

なおこの例において、Eが1桁であると考える場合は、Eとeは同じ数、すなわち同一視できるので、この場合は42Ee→eE(=Ee=EE=ee)と考えても問題ありません。

一般的に変数がただ1桁からなる数、あるいは対称数であると仮定して使用する場合は、大文字と小文字は同一視できることになります。

動作しない場合は下記のC言語版をダウンロードしてお使いください。使用方法は付属のreadme.txtを参照してください。

【マッカロのナンバーマシン:mac.lzh】