基礎:字母表、字串與語言
字串的次方(power of a string)
字串的次方是指把該字串重複固定的次數,像把同一個橡皮章連續蓋好幾次。寫 w^3 就只是指 w w w,也就是把字串 w 與自己串接三次。所以若 w = ab,則 w^3 = ababab。它是「指數對數字所做的事」的字串版本,只是用串接代替乘法。
精確地說,對字串 w 與一個整數 k,次方 w^k 由重複串接定義:w^0 = ε(零份得到空字串,正如任何數的 0 次方是一種中性的起點),且 w^(k+1) = w^k w(比前一個次方多一份)。由此 w^1 = w、w^2 = ww,依此類推。一個俐落的推論是長度會相乘:|w^k| = k 乘以 |w|。這直接建立在串接之上,只是一再套用在同一個字串上。
次方讓我們能簡潔地命名無限多個字串的家族,這是許多著名例子背後的引擎。樣式 a^n b^n(n 個 a 後面接 n 個 b)是教科書上「沒有任何有限自動機能識別的語言」的範例,因為要數出現了多少個 a 需要無界的記憶體。單一符號的次方,如 a^n,也讓我們能陳述像「a 的偶數長度字串語言」這類東西。每當你看到字串或符號上有指數,就把它讀成「那麼多份的重複拷貝」。
若 w = ab:w^0 = ε、w^1 = ab、w^2 = abab、w^3 = ababab。對單一符號,a^4 = aaaa 且 |a^4| = 4。樣式 a^n b^n 指 n 個 a 後面接 n 個 b。
w^k 是把 w 與自己串接 k 次;依慣例 w^0 = ε。
w^0 = ε,不是 w 本身。任何字串的零份都是空字串,正如重複的基底情形。
又称
另见