配列のインデックスはなぜ0から始まるのか

ruby を復習中に、配列のインデックスが0から始まることに疑問を持ってしまったため、調べてみることにしました。

 

結論から言うと、諸説あって正解があるというわけじゃないっぽいということ。

 

また、言語によっては1から始まるものであることから、おそらくそれぞれの言語の開発者が各々の理由によって0からなのか1からなのかを決めたであろうこと。

 

ということで、開発者に直接聞いてみないとわからん!

 

という部分はあるが、もう少し見てみる。

 

 

よくお見かけするのが、表現の問題ということ。

 

詳しく突っ込み出すと数学の世界に突入してしまうので軽くまとめるが、エドガー・ダイクストラによると、要素の数が0である場合を考慮すると、0から始まるとしておいた方が表現としてわかりやすいよね!っていうことらしい。

 

で、それがどう配列のインデックスに結びつくのかはわからないわけだが・・・

 

アタマのいい人の考えることはよくわかんね!

 

ってことはよくわかった!

 

 

 

ただ、よくわからないままにしておくのも気持ち悪いので、調べたり考えたり妄想してたり、色々してたわけですが、結局のところ色々の色にたどり着きました。

 

色を表現する際、16進数カラーコードがある

 

#000000 = rgb (0,0,0)

16 * 16 ないしは 0〜255 で表すあれだ。

 

位取り記数法のことを考えると、例えば16進数なら16番目は桁が一つ上がってしまう。

 

1〜10で表すより

 

0 〜 F で表した方がスッキリ!

 

 

ま、配列も似たような感じで受け止めてあげたらいいんじゃない?

 

という感じで、なんとなく自分を納得させてあげることができました。

 

 

結論を示せたわけではないですし、納得の仕方はそれぞれなので、気になった方はさらにググってみてください。

 

そしてどうしても納得いかない!

 

っていう人は、新しく言語作っちゃってください!!

 

GOOD LUCK !