開啟主選單

求真百科

變數
圖片來自youtube

初等數學裡,變數變元是一個用來表示值的符號,該值可以是隨意的,也可能是未指定或未定的。在代數運算時,將變數當作明確的數值代入運算中,可以於單次運算時解出多個問題。一個典型的例子為一元二次公式,該公式可以解出每個一元二次方程[1] 的值,只需要將方程的系數代入公式中的變數即可。

變數這個概念在微積分中非常重要。一般,一個函數y = f(x)會包含兩個變數,參數x和值y。這也是「變數」這個名稱的由來,當參數「變動」時,值也會相對應地「變動」。另外在更深的數學中,變數也可以只代表某個數據,一般為數字,但也可能為向量矩陣或函數等數學物件。

目錄

起源及概念之演進

弗朗索瓦·韋達於16世紀末引入了使用字母表示已知及未知數字的想法,並將這些字母視同數字般運算,以在最後簡單代入數值求解。弗朗索瓦·韋達習慣會以子音字母表示已知值,以母音字母表示未知值。

1637年,勒內·笛卡兒引入以x, y, z表示公式中的未知數,以a, b, c表示已知數的習慣,此一習慣至到今日依然常見。

1660年代起,艾薩克·牛頓哥特佛萊德·萊布尼茲分別獨立發展出無窮小演算,主要研究一個「可變量」的無窮小變動如何導致另一個量(第一個變數(量)的函數)相對應的變動。之後過了近一個世紀,李昂哈德·尤拉修正了無窮小微積分的用語,並引入y = f(x)的概念,f是個函數,具有參數x及值y。直到19世紀末,「變數」這一詞幾乎都被用來指函數的參數及值。

19世紀下半葉,人們發覺無窮小微積分的基礎似乎不夠形式化,不足以處理像是處處不可微連續函數這類自相矛盾的問題。為了解決此類問題,卡爾·魏爾斯特拉斯引入了新的定義,以取代之前對極限的直觀概念。對極限,舊的概念描述「當「變數」x變動且趨近於a時,f(x)會趨近於L,其中的「趨近」並沒有明確的定義。魏爾斯特拉斯則將上述句子以下列公式取代:

(\forall \epsilon >0) (\exists \eta >0) (\forall x) \;|x-a|<\eta \Rightarrow |L-f(x)|<\epsilon

其中的5個變數均不被視為是變動的。

此一靜態公式導致今日對變數只是表示數學物件(可以是未知的,或可被給定集合中的任何元素取代)之符號的概念。

計算機科學上

變數可以指在電腦記憶體裏存在值的被命名的存儲空間。

變量通常是可被修改的,即可以用來表示可變的狀態。這是許多語言(如Java)的基本概念之一。有的語言可能定義其它術語,如C語言左值來精確地表示這裡的(可能匿名的)存儲空間的概念,而「變量」則在變量名的意義上被強調。

當某個已宣告變數開始使用,直譯器或編譯器通常會設定一個空間來儲存所給出的值。稍後該變數不再使用時,那些空間可以回收

也有觀點認為,變量應該和數學的原意一致,不需要允許它儲存的可變,不需要有能力表示可變狀態。Haskell的類型變量仍然符合這個含義。

有些編程語言中的變數必須帶有型別

命名

每種編程語言都有規則指定甚麼才可作為變數的名字。

使用C和其相關語言,變數名稱在語法上稱為標識符,必須是由英文字母、數字和底線組成,且必須由字母起頭。有時還不可以使用某些保留字命名。

使用某些語言,變數的名字同時告訴了這個變數帶有甚麼種類的值。例如FORTRAN的程式裏,變數的首個字母顯示了它是整數還是浮點數。變數名字首個字符是$的話,在BASIC的程式裏表示其值是字串。Perl透過字首如$,@,%和&來分辨哪是純量、陣列、雜湊或副程式。

每個編程組織都有非正式的命名規矩——單打獨鬥的程式員亦是如此。有人喜歡所有變數都用簡單的英文字母取名,認為能增加輸入程式碼的速度,但只要變數一多,就會容易混淆,甚至以後自己看回程式碼也不懂在寫甚麼。

迴圈控制變數這樣的虛變量和數學上的習慣類似,通常以i, j, k命名。

統計學上

變量是統計學研究中對象的特徵。它可以是定性的也可以是定量的,一個定量變量要麼是離散的,要麼是連續的。社會科學中研究變量的關係,通常採用數學中對應的觀念,把一個變量稱為自變量(獨立變量),另一個變量稱之為因變量(依賴變量)。

參考文獻