Javaで解説する「世界に一つだけの花」

 ところで、一般的に数は3つの用途があるといわれている*1

  • 標識数: 標識数とは何かにユニークなIDをつけるために数を用いることである。たとえば、社員番号やフライト番号である。
  • 基数: 基数は、ものの個数を表すために数を利用することである。たとえば、10冊の本とか500個のミカンとか、そんなやつである。
  • 順序数: 順序数とは、ものの順序を比べるために数を利用することである。たとえば、僕は2番で君は3番なら僕の勝ちとか、そういうことである。

 ちなみに一般的に標識数と順序数は全然性格が違い、順序数として数字を扱うことを前提とした様々な手法やアイデアは、基本的に標識数では一切使えない。


 とまあ、そういう基礎知識を持って、「世界に一つだけの花」を聞きたいところである。
♪ No.1にならなくてもいい、もともと特別なOnly one
ってサビがあるが、結構、

Only Oneっていうけど、結局あるカテゴリの中ではNo.1にならないとダメだってことだよねえ

っていう誤解があると思う。実際、この歌が出てからは、会社で「ある領域でトップになれ!」って言う意味で「Only oneになれ!」 とかよく言われる
 けど、この歌の本当の意味は、「僕らは順序数として比較されるものではなくて、標識数としてユニークな存在なんだ」という意味なんだと思うぞ。だから自分の価値観で生きていっても良いんだよと言っているわけである。
 Java的に言うと、俺らはObject.equals(java.lang.Object)メソッドは、誰でも持っている(細かく言えば、特に同質性でなくて、同一性で判定する実装を持っているもの)。けど、Comparableインタフェースは持っていないことだ。

public interface Comparable
このインタフェースを実装する各クラスのオブジェクトに全体順序付けを強制します。この順序付けはクラスの「自然順序付け」と呼ばれ、このクラスのcompareTo メソッドは「自然比較メソッド」と呼ばれます。

 この歌は、ある分野ではやっぱり競争しろ、という意味では、決してないのである。

とまあ、数字についてイロイロ考える機会が最近あったので、こんなことを考えながら、寒い寒いと思いつつ家路に着いた。今年も終わりに近づいてきたな。

*1:Ref: Mathematical Mysteries