2017-09-13 13 views
-3

数学では、水平軸を表すためにx座標を持ち、垂直を表すにはy座標を持ちます。私。 (x、y)である。プログラミングの座標系と数学の座標系が異なるのはなぜですか?

プログラミングでは、システムが反転されます。

I.e.

int[] array = new int [3,5]; 

ここで、配列は、3列と5行ではなく、3行5列です。 完全な初心者プログラマーであり、数学から来ているので、これは頭が数回回転する原因となっています。

この慣習の違いは完全に恣意的なのでしょうか、それともシステムのフリッピングがそれを改善する理由はありますか?

+2

それだすべてのプログラミング言語では、Googleの「行の主要な」と「欄主要」や、FORTRANなどの言語を見ても、同じではありません。 –

+0

(paulは何を言いましたか?)また、ほとんどの言語でMatlabやJuliaではなく[ゼロベースのインデックス作成](https://en.wikipedia.org/wiki/Zero-based_numbering)を続けています。行のメジャーとカラムメジャーの場合、ここでいくつかの素晴らしい[blog-post](http://eli.thegreenplace.net/2015/memory-layout-of-multi-dimensional-arrays/)があります。 SOユーザーの1人。 – sascha

+0

2D配列はデカルト平面よりもはるかに行列に似ており、行列は同じ規則を使用します。 – user2357112

答えて

0

これは全く座標を示していません。これをプログラマの観点から見ると、別の配列を指すポインタの配列だけです。

0

5×1行列を持つ3×5行列の積は3×1行列であるためです。

[3×5]·[5×1]=[3×1] 

このように、内積の縮小は、インデックスの順序を決定するのに十分重要です。

もちろん、索引の解釈はアプリケーションによって異なります。配列が空間データを格納するために使用された場合、与えられた順序を使用します。数学で

0

我々は、ブラウザのように、我々は指していない負の軸を持つ負