ベクトル的配列と数列的配列の違い ~ dim

こんにちは。プログラミングで複数の値をまとめる考え方には、数学に端を発する2つの流れがあります。



プログラミングの初歩で、複数のデータを記録しようとすれば「配列(array)」というコンセプトに出会うことになります。

配列は、連続するメモリ空間にデータを順次記録していくので、コンピュータの構造から「自然」なデータ形式です。

---

しかし、数学の世界には、複数の値をまとめる考え方には、2つの潮流があります。

一つは数列(series)です。

この考え方をもとにクラス30人の国語の成績を表現します。

j̠n=85,70,45,100,93,... 

データ系列として表現することができます。

---

もう一つはベクトル(vector)です。

この考え方をもとに一人の生徒の5教科の成績を表現します。

v = (85, 30, 68, 100, 84)

5次元のベクトルとして、一人の生徒の成績を表現することができます。

このように成績の表現には2つの方法があることがわかります。

---

現在では、数列的なアプローチの方が主流です。

これは、ベクトル的な方法だとデータが増えるごとにa, b, c ... と変数を宣言しなければならなくなるからです。

---

なぜ、このようなことを言うかというと、VBAのもととなるBASICにおいては、むしろベクトル的なアプローチが主流だった時代があるからです。

その名残が「dim(dimension:次元)」というキーワードにあります。

数学では点p(3, 5)と点q(8, 7)のように表現します。

これをプログラムの中では、

dim p(2), q(2)
let p(1) = 3
let p(2) = 5

として計算しました。
ちなみに初期のbasicでは配列の添え字は1から起算されていました。

---

このようなベクトル的考え方から数列的な考え方に変化するのは、コンピュータの処理する対象が数値計算だけでなく、文字列処理があったからです。

文字列はベクトルのようにあらかじめ次元が決まっているものではありません。

また、順序に意味があるという点でもベクトルとは異なります。

したがって、汎用的なプログラミングでは、「配列」が主流になりました。

---

このような意識はデータベースの管理でも役に立ちます。



データベースは行列からなる表です。

行は「レコード」といい、一個の対象を示します。

列は「フィールド」といい、一つの方法で測定した結果を示します。