在數學中,爲了表示水平軸,我們有x座標,並且表示垂直我們有y座標。即(X,Y)。爲什麼編程中的座標系與數學不同?
編程時,系統翻轉。
I.e.
int[] array = new int [3,5];
這裏,數組有3行5列,而不是3列5行。 作爲一名來自數學的完全新手程序員,這讓我的腦子旋轉了幾次。
傳統的這種差異是完全武斷的,還是有理由翻轉系統使其更好?
在數學中,爲了表示水平軸,我們有x座標,並且表示垂直我們有y座標。即(X,Y)。爲什麼編程中的座標系與數學不同?
編程時,系統翻轉。
I.e.
int[] array = new int [3,5];
這裏,數組有3行5列,而不是3列5行。 作爲一名來自數學的完全新手程序員,這讓我的腦子旋轉了幾次。
傳統的這種差異是完全武斷的,還是有理由翻轉系統使其更好?
它根本沒有劑量現在的座標。從程序員的角度來看,它只是一個指向另一個數組的指針數組。
因爲具有5×1矩陣的3×5矩陣的乘積是3×1矩陣。
[3×5]·[5×1]=[3×1]
內部尺寸爲矩陣乘積的這種收縮是足夠重要的是,它決定索引的順序。
當然,對索引的解釋取決於應用程序,如果使用數組來存儲空間數據,則可以使用您給出的順序。
在數學上,我們有負軸,其中在瀏覽器中,我們沒有一點負面
它甚至不是同一個在所有的編程語言,谷歌「行優先」和「列爲主」,並期待在語言,如FORTRAN 。 –
(什麼保羅說!)它繼續[零基索引](https://en.wikipedia.org/wiki/Zero-based_numbering)主要使用的所有語言,但不是Matlab或朱莉婭。對於行主專欄,這裏有一些不錯的[blog-post](http://eli.thegreenplace.net/2015/memory-layout-of-multi-dimensional-arrays/)(我只通過它瀏覽) SO用戶之一。 – sascha
二維數組遠比笛卡爾平面更像矩陣,矩陣使用相同的約定。 – user2357112