不定期記事「探索者」

作成日:2014/10/21
最終更新日: 2016/07/23
作成者:しんどうまさゆき

ホーム > 不定期記事「探索者」 >

今回は、数の概念の発達史と自然言語の数詞を比較し、まとめたい。

<0を数に含めない理論が確立された>
自然数 2 自然数の歴史と零の地位(Wikipedia)

数の概念の発達史は、上のWikipedia記事に詳しい。ここから引用する。
自然数は「ものを数える言葉」を起源とし、1 から始まる正の数であったと推定されている。文明が起こり、数字が考え出されたとき、ローマ数字、ギリシア数字、エジプト数字、バビロニア数字、マヤ数字、漢数字、等のどれもが1から始まる正の数字であった。つまり、「物がある」という概念を量的に表そうとしたのが数であり、「物がない」という概念は「無い」という言葉で充分だった。
数の表現方法は、まずは話し言葉での数詞、次に数字の順で発明された。日本語は数の「0」を表す数詞に、零(中国語)、ゼロ(zero, 英語)、ヌル(Null, ドイツ語、数の「0」とは異なる意味でコンピュータ用語として使われている)を現在取り入れているが、和語はなかったようだ。零、zero, Null も、各国の歴史を見れば1〜9より後の時代に付け足された語だろう。

「0」を数に含めても意味がない(加減算に影響がないため)、数は「ある」で「0」は「ない」を意味する正反対の概念だ、という考えが文明の初期には常識だったと思われる。そのため、話し言葉の数詞や、初期の数字には「0」がなかった。

しかし、数字を使うようになると、「0」に関わる問題が発生した。再び上記事から引用する。
最初の大きな進歩は、数を表すための記数法の発明であり、これで大きな数を記録することが出来るようになった。古代エジプト人は 1 から百万までの 10 の累乗それぞれに異なるヒエログリフを割り当てる記数法を用いていた。バビロニアでは、数字を離して表記することでその桁が 0 であることを示す六十進法の位取り記数法に似た方法が開発された。しかし、0 を表す文字がなかったため、例えば 10203 は 0 を空白にして "1 2 3" と正しく表記できるが、10200 は "1 2" となって 102 と区別できない欠点があった。オルメカとマヤの文明では紀元前1世紀までには、(バビロニアと同様に)数字を離して 0 の桁を表す方法が独立に用いられていた。
数が1桁か2桁の場合「0」を表記しなくとも問題はない。まず、1桁の数、つまり「1」「2」「3」・・・「9」は「01」「02」「03」・・・「09」と書かなくても誤解のおそれはない。話し言葉の数詞でも、言う必要はなかった。

2桁の数、「10」「11」「12」「13」・・・「20」「21」「22」「23」・・・「90」「91」「92」「93」・・・「97」「98」「99」のそれぞれは、1桁の数の各々や、他の2桁の数と紛らわしいことはない。なお、説明の便宜のため、ここでは「10」「20」「90」の表記に「0」を使った。しかし、文明の初期には0の概念がなかったので、数字を使わず、数詞の「とを」「はたち」「ここのそぢ」や「十」「二十」「九十」、あるいは ten, twenty, ninty で書くほうがより正確だ。昔の人間にとっては「9より1多い木」「19より1多い木」「89より1多い木」のように、数に伴ってなんらかの物が連想されただろう。話し言葉の数詞でも「イチレイ」「ニレイ」「キュウレイ」などと、「ない」を意味する言葉を「ある」を意味する数(数詞)といっしょくたに言う必要はなかった。

十進法では、数を一、二、三、・・・九と数え、「九より一多い数」を一束にして「十」と呼ぶ。その後、十一、十二、十三・・・十九と数え、「十九より一多い数」を「十が二束」とみなして「二十」と呼ぶ。これまた、話し言葉の数詞で「二零」などと言う必要はなかった。数を数えるのはものが「あるから」なので、「ない」と「ある」を混ぜるのは矛盾している。「二零」と言えば「品物Aが二個あり、品物Bがない」と解釈されたかもしれない。野球やサッカーのスコアに使うのが適切だっただろう。現代でも「2対なし」などと言っても弊害はあるまい。

何を当たり前のことをくどくどと話しているのだ、と訝しむ方がいるかもしれない。しかし、上の説明には注意すべき点がある。それは、数字の「0」や「0の概念」を意図的に避けた数え方があると指摘していることだ。文明初期の数感覚は「0を避ける感覚」だった。現代人、特に学校教育を修了した人は、「0を計算で自在に使う感覚」のはずだ。古代人と現代人とでは、数の呼び方こそ一緒かもしれないが、頭の中では正反対の、あるいは前提が大きく違う想像をしていたことに注意が必要だ。

Wikipedia記事に戻る。数が1桁か2桁の場合「0」を表記しなくとも問題はなかった。しかし、3桁以上になると、つまり最初と最後の桁以外に「0」が含まれると、位取り記数法で数字を書くとき、ある数字が2通り以上の数に解釈されうる問題が生じた。ただし、話し言葉の数詞では、十の位、百の位、千の位に固有の数詞(正に十、百、千のような)を発明していたので、問題は発生しなかったし、数字の場合もヒエログリフ方式では、十の位、百の位、千の位に固有の数字を割り当てたため、問題がなかった。そして、古代文明で使われた数字には0を混ぜない仕組みが多い。漢数字、ローマ数字、ギリシャ数字(ギリシャ文字のアルファベット1つを数字1つにあてはめる)、ブラーフミー数字(インド)のいずれも、十の位、百の位、千の位に固有の数字を使っていた。当時の理論では、この方式のほうが誤解がなく、話し言葉とも一致していて合理的だったわけだ。

現代人はナンセンスだと思うばかりだろうが、「1づつ増える」という数の特徴に反するため、「ある」と「ない」が混ざっているのは奇妙なことだ、無用なものを加えるのはいたずらに複雑なだけだ、と感じられたのではないか。

バビロニア方式の欠点を具体的に調べよう。"1 2" が表す数には以下がありうる。102、1002、10002、100002、・・・。"1 2 3" はこうだ。10203、102003、1020003、10200003、100203、1000203、10000203、1002003、100020003、10000200003、・・・。0がいくつあるのか分からないため、解釈が複数生まれてしまう。これを防ぐには、「0が1桁」と表示すればよい。(注、"1 2" が1020、10200、102000、・・・と誤解されないのは、桁の最後に終了の記号があったためだと思われる)

0 3 歴史(Wikipedia)

上のWikipedia記事に詳しいが、実際バビロニアやマヤ文明でも、後に「0が1桁」とほぼ同じ記号が発明された。ほぼ同じ、というのは、この記号が「空白を示す記号」、あるいは「空の桁1個」として扱われ、「計算できる数」という特徴を持つ0の概念とは異なったからだ。インドでは1世紀に「0」の記号が使われ始めたが、当時は「空の桁」を意味した。数としての 0 の概念は、628年のインド人数学者ブラーマグプタによって見出され、現代の 0 の概念と近い計算法が考え出されたという。3桁以上の数であっても、「百一とは百より一多い木の数」という想像が自然なものだったのだろう。「空の桁」を入れることは受け入れられたが、0の概念を取り入れることには抵抗感が強かったと思われる。数とは正反対の「ない」記号を混ぜ、さらにそれを計算に用いることは、現代人にとって必要性が感じられても、なお不自然なものだった。

算木(Wikipedia)

アバカス(Wikipedia)

0の概念を受け入れない態度を続けた古代人だが、彼等にとっては0の概念を取り入れなくとも問題がなかった。計算には計算機具の算木やアバカスを用い、数字は答えの記録に使ったからだ。計算と記録の分業体制が確立していたと言える。現代日本人で例えれば、計算機を使えるから掛け算九九を覚えないようなものだろうか。上のWikipedia記事に詳しいが、算木やアバカスでは空の桁が一目瞭然になるため、計算を間違う可能性は低い。あとは答の数字の記述法を工夫して、誤解をなくすことができればよい。筆算の必要性がなかったため、0の概念は不要だったことになる。古代人にとって、0を数に含めることは、原子力発電所が地震と津波を十分防御できず、放射性物質が漏洩したことと同列に論じられたかもしれない。「そもそも使おうと思ったのが間違いの始まりだったのだ」という論調になるだろう。

<0を数に含めるとゼロ除算の問題が生まれる>
0 3.1 0 の起源(Wikipedia)

また、0の概念が発明されても、すぐに広まったわけではない。上のWikipedia記事から引用する。
古代エジプトでは 0 の存在を知っていたが発達せず、それを表す記号もなかった。0 を四則演算などで扱うと矛盾が生ずるので、無理数同様、受け入れられなかった。
ブラーマグプタは(注、インドの数学者・天文学者)、628年に著した『ブラーマ・スプタ・シッダーンタ』において、0 と他の整数との加減乗除を論じ、0 / 0 を 0 と定義した以外はすべて現代と同じ定義をしている。
0の概念を取り入れて、0を数として利用すると「ゼロ除算」の問題が発生する。「ない」を「ある」かのように表現したため、必然的に生じる矛盾だった。Wikipedia記事「ゼロ除算」に詳しいが、一部を抜粋しよう。

ゼロ除算 2 初期の試み(Wikipedia)
(上項目の抜粋)バースカラ2世は n/0 = ∞ と定義することで問題を解決しようとした。この定義はある意味では正しいが、後述の「ゼロ除算と極限」に示す問題もあり、注意深く扱わないとパラドックスに陥る。このパラドックスは近年まで考察されなかった。
ゼロ除算 3 代数学的解釈(Wikipedia)
(上項目の抜粋)ゼロ除算は未定義のままとされなければならない。その理由は、除法が乗法の逆演算として定義されているためである。つまり、a/b の値は、bx = a という等式を x について解いたときに値が一意に定まる場合のみ存在する。さもなくば、値は未定義のままとされる。
ゼロ除算 5 コンピュータにおけるゼロ除算(Wikipedia)
(上項目の抜粋)1997年、民生品の応用を研究していたアメリカ海軍はタイコンデロガ級ミサイル巡洋艦ヨークタウンを改造して主機のガスタービンエンジンの制御にマイクロソフト社のソフトウェアを採用したが、試験航行中にデータベースのゼロ除算が発生してソフトウェアが例外を返し、結果として主機が停止、回復するまでカリブ海を2時間半ほど漂流する事態となっている。
現代でも、(アプリケーション階層の)ソフトウェア設計や(OS階層の)ソフトウェア環境に何らかの手落ちや見落としがあると「ゼロ除算」による実害が発生する。「ゼロ除算」は「ない」を「ある」かのように表現したために必然的に生じた矛盾であり、文明がどれだけ進歩しても防ぐ術はない。古代人は「それ見ろ、言わんこっちゃない」とため息をついただろう。0を数として扱わないことは、保守的な態度だがそれなりの根拠があっての主張だった。文明は退廃した、と嘆いた可能性すらありうる。

<自然言語は0を混ぜないで数える>
ともかく、新理論の発見と欠陥の発生という紆余曲折を経ながら、数学的な「数の概念」は高度になっていった。だが、自然言語の数詞は数学の発展を追いかけてはいかなかった。現代でもなお、自然言語の数体系は「0を混ぜないで数える」概念を採用している。

日本語の数体系(「思索の遊び場」中記事)

トンガ語の数体系(「思索の遊び場」中記事)

トンガ語で100まで数えましょう!(「Junk stage 古今東西音巡り 2012/05/06」)

ここで、日本語とトンガ語(南太平洋のトンガ王国の公用語)の数体系を比較しよう。日本語もトンガ語も十進法で統一されている。10を一束、100を一束、1000を一束・・・とする考えはあり、束となる個々の数に固有の単語をあてはめている。しかし、トンガ語には、数字を1桁づつ唱え、0も唱える方式がある。10を「1、0」、100を「1、0、0」と唱えるわけだ。これは、本来無文字であり、数字も使わなかったトンガ語社会に、数字を使うイギリスとの交易が始まった結果、数字を左から右へ機械的に読んだからだと思われる。単なる偶然から始まった方式だと思うが、トンガ語方式は数学的な数の概念に忠実だ。

今回は数の概念の発達史を振り返り、まとめてみた。数の概念は紆余曲折を経ながら高度化していった。一方、自然言語の数詞は数の概念を追いかけることはなく、0を混ぜないで数えるのが定石だと指摘した。

ヒンディー語の数体系(「思索の遊び場」中記事)

ところで、インドのヒンディー語の数体系は上ページに詳しい。ヒンディー語は基本的には十進法だが、単語の作り方の不規則さゆえに実質百進法であり、1から100まで暗記する必要がある、との指摘がある。トンガ語とは対局にある、難解を極めた数体系だ。

2つの単語を連結する際、口調を良くするためなどの理由で音変化を起こすのが自然言語の特徴だ。ヒンディー語の数詞では、この音変化の規則性が複雑(あるいは無秩序)であるために語彙も複雑化したと思われる。音変化の規則性には、民族ごとの音への感性も影響しているだろうから、個々の単語の作り方については私はよく分からない(なお、日本語にも「促音便」「拗音便」「撥音便」といった音変化がある)。ヒンディー語の数体系の難しさはこれが主要因だろうが、それとは別の要素もヒンディー語の数体系を難しくしていると思う。次回はこのへんについて考察したい。

−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−

(あとがき)当記事へのコメントは Facebook のメッセージ経由でお願いします。

Facebook:進藤政幸