兩個數字的乘法可以通過算法定義,如下所示:'將第一個數字加到自身的次數等於第二個數字的數值'。兩個數的冪運算可以通過算法定義如下:「將第一個數乘以自己的次數等於第二個數的值」。思考乘法和冪乘的定義引發了一些問題...推廣算術運算符
首先,可以通過以加法作爲基本操作開始定義一類算術操作嗎?我寫了一些Haskell代碼來驗證這一想法:
order1 x y = x + y
order2 x y = foldl (order1) x (replicate (y - 1) x)
order3 x y = foldl (order2) x (replicate (y - 1) x)
order4 x y = foldl (order3) x (replicate (y - 1) x)
order5 x y = foldl (order4) x (replicate (y - 1) x)
果然,「order2」的含義是乘法和「order3」的含義是冪。據我所知,英語中缺乏'orderN'的詞彙,其中N> 3。數學界是否有任何關於這些操作的有趣說法?
另外,鑑於這些「訂單」功能遞歸的外觀,怎麼可能一個寫這樣的功能:
generalArithmetic :: Int -> Int -> Int -> Int
generalArithmetic n x y = --Comment: what to put here?
這意味着乘法當n等於2,意味着冪n = 3時... ?
另外,如何推廣這些算術函數,以便它們可以對所有實數進行操作?畢竟,'複製'的類型是Int - > a - > [a]。
http://en.wikipedia.org/wiki/Tetration –
一般表達式爲[超運算](http://en.wikipedia.org/wiki/Hyperoperation)。 – leftaroundabout
**自然**數的乘/冪可以定義爲「低階」操作的重複應用。更難以說明將「x^-7.6」解釋爲「將x乘以-7.6倍」意味着什麼。 – Ben