1は素数かに続いて0は自然数か?
問題
0は自然数か
回答
0は自然数ではありません。
自然数をどう定義するかによりますが、現在は0は自然数にいれないのが普通です。
以上
ところが、0を自然数にいれて考えている人(特に数学者)もいる
なぜ、0を自然数にしたがるのか
簡単にいうと、楽できるから!
わかっている同士では0を自然数にいれても話が通じます。
「nを自然数とする」と書かれている場合、通常nは0となることはありません。0は自然数でないので。
ところが、nが0でも良い場合があったりします。そういう時は、「nは0または自然数とする」というのが礼儀正しい誤解のない言い方です。
ところが、毎回毎回、「0または自然数」というのが頻繁にでてくると、「0または自然数」というのが面倒になり、それを省略して「自然数」と言いたくなることもあるわけです。こういった用語の短縮、あるいは用語の再定義を行う場合は、最初に断り書きとして、「特に断り書きのない場合、ここで自然数というときには、0も含むものとする」といった前置きをするのが通例です。
また、断り書きをしても誤解が生じる可能性が否定できないので、「0または自然数」を「非負の整数」という言い方にあわせる方法もあります。負でない整数は、0または正の整数、つまり0または自然数と同じ意味になります。
短縮用法の意味という点では、素因数分解の一意性の命題などで「pを1以外の素数」という言い方になるのを避けるために、1を素数に含めないで置こうという考えを前に示しましたが、それに通じる考えともいえます。
単に定義付けの問題か?
0を自然数に含みたいのは、たんに、言葉の省略のためだけと言い切れない面もあります。もともとの自然数の定義からすると、0は自然数ではありません。
ところが、物事は0から数えたほうがなにかと都合が良いことも多いのです。
プログラミングをしているとそれがよくわかります。C言語を設計したカーニハンとリッチーの先見の目は素晴らしいものです。C言語系統の一族は数字を0から数えますが、現在のメジャーな言語はその考え方を踏襲しています。つまり、この考え方が便利なので、引き継がれているわけです。
これとは対照的にBASIC言語系は基本1から数えます。配列の計算をするときにも1から始めます。とっかかりは考えやすいのですが、慣れてくると不便さを感じることがでてきます。
同じような処理をC言語とBASICで記述するとわかりますが、0から数えたほうがスマートになることが多いのです。
これを実感するためには、プログラミングの勉強をするのが一番で、ここで長々とその説明をする余裕はありませんが、0から数えると、なにかとスマートだということです。
時計の例もそうです。1時から始まって12時に終わりますが、12時は0時として処理したほうが、かなりスマートになります。これについては、0時は昨日か今日かで説明しました。時計の文字盤は12と書かれていますから12時15分などという言い方をしますが、計算するときには0時15分と読み替えて計算したほうが、処理が単純な計算になるのです。
こういった例をかんがえると、物事の本質を見極めて、自然数に0を入れたくなる考えもわからなくはありません。
そうはいっても、世の中の混乱を避けるために、0は自然数としないほうが無難です。
まとめ
- 特に断り書きのない場合、0は自然数に含めない
- 数を数える時に0から数えるとなにかと便利なことが多い
- 不便であっても、0を自然数に含めないほうが混乱がない
[ad#foot]