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を自然数に含めないほうが混乱がない