變數
在初等數學裡,變數或變元、元是一個用來表示值的符號,該值可以是隨意的,也可能是未指定或未定的。在代數運算時,將變數當作明確的數值代入運算中,可以於單次運算時解出多個問題。一個典型的例子為一元二次公式,該公式可以解出每個一元二次方程的值,只需要將方程的系數代入公式中的變數即可。
變數這個概念在微積分中非常重要。一般,一個函數會包含兩個變數,參數和值。這也是「變數」這個名稱的由來,當參數「變動」時,值也會相對應地「變動」[1]。另外在更深的數學中,變數也可以只代表某個數據,一般為數字,但也可能為向量、矩陣或函數等數學物件。
起源及概念之演進
弗朗索瓦·韋達於16世紀末引入了使用字母表示已知及未知數字的想法,並將這些字母視同數字般運算,以在最後簡單代入數值求解。弗朗索瓦·韋達習慣會以子音字母表示已知值,以母音字母表示未知值[2] 。
1637年,勒内·笛卡兒引入以表示公式中的未知數,以表示已知數的習慣[3],此一習慣至到今日依然常見。
1660年代起,艾薩克·牛頓及哥特佛萊德·萊布尼茲分別獨立發展出无穷小演算,主要研究一個「可變量」的無窮小變動如何導致另一個量(第一個變數(量)的函數)相對應的變動。之後過了近一個世紀,李昂哈德·尤拉修正了無窮小微積分的用語,並引入的概念,是個函數,具有參數及值。直到19世紀末,「變數」這一詞幾乎都被用來指函數的參數及值。
19世紀下半葉,人們發覺無窮小微積分的基礎似乎不夠形式化,不足以處理像是處處不可微之連續函數這類自相矛盾的問題。為了解決此類問題,卡爾·魏爾斯特拉斯引入了新的定義,以取代之前對極限的直觀概念。對極限,舊的概念描述「當「變數」變動且趨近於時,會趨近於,其中的「趨近」並沒有明確的定義。魏爾斯特拉斯則將上述句子以下列公式取代:
其中的5個變數均不被視為是變動的。
此一靜態公式導致今日對變數只是表示數學物件(可以是未知的,或可被給定集合中的任何元素取代)之符號的概念。
計算機科學上
变量通常是可被修改的,即可以用来表示可变的状态。这是许多语言(如Java)的基本概念之一。有的语言可能定义其它术语,如C语言的左值来精确地表示这里的(可能匿名的)存储空间的概念,而“变量”则在变量名的意义上被强调。
當某個已宣告變數開始使用,直譯器或編譯器通常會設定一個空間來儲存所給出的值。稍後該變數不再使用時,那些空間可以回收。
也有观点认为,变量应该和数学的原意一致,不需要允许它储存的值可变,不需要有能力表示可变状态。Haskell的类型变量仍然符合这个含义。
命名
每種編程語言都有規則指定甚麼才可作為變數的名字。
使用C和其相關語言,變數名稱在语法上称为标识符,必須是由英文字母、數字和底線組成,且必須由字母起頭。有時還不可以使用某些保留字命名。
使用某些語言,變數的名字同時告訴了這個變數帶有甚麼種類的值。例如FORTRAN的程式裏,變數的首個字母顯示了它是整數還是浮点数。變數名字首個字符是$的話,在BASIC的程式裏表示其值是字串。Perl透過字首如$,@,%和&來分辨哪是純量、陣列、雜湊或副程式。
每個編程組織都有非正式的命名規矩——單打獨鬥的程式員亦是如此。有人喜歡所有變數都用簡單的英文字母取名,認為能增加輸入程式碼的速度,但只要變數一多,就會容易混淆,甚至以後自己看回程式碼也不懂在寫甚麼。
迴圈控制變數这样的虚变量和数学上的习惯类似,通常以i
, j
, k
命名。
统计学上
变量是统计学研究中对象的特征。它可以是定性的也可以是定量的,一个定量变量要么是离散的,要么是连续的。社会科学中研究变量的关系,通常採用數學中對應的觀念,把一个变量称为自变量(独立变量),另一个变量称之为因变量(依赖变量)[4]。
參考文獻
- Syracuse University. . cstl.syr.edu. (原始内容存档于2014-01-16).
- Fraleigh, John B. 4. United States: Addison-Wesley. 1989: 276. ISBN 0-201-52821-5.
- Tom Sorell, Descartes: A Very Short Introduction, (2000). New York: Oxford University Press. p. 19.
- David Freedman; Robert Pisani, Roger Purves. . Norton & Company. 1998: 136. ISBN 9780393960433. 3 (英语).