為什麼在數學中,一些運算的逆運算比原運算難很多?

比如說開立方與立方運算是互逆的,且兩種運算的結果都是唯一確定的(實數範圍內),而開立方遠比立方複雜的多。

再比如矩陣求逆、無限循環小數化為分數等...


剛學離散數學代數系統部分,提出一點淺薄的見解,純屬拋磚引玉。

私以為,這個問題可以從兩點來討論:一是逆運算是否可以通過逆元轉化為原運算,二是要計算逆運算我們是否需要面對比原運算更多的數。如果我們認為開方是乘方的一個逆運算,那麼在&上,第一點的答案是「否」,第二點的答案是「是」,因此開方比乘方難。

每一個二元運算都是定義在一個集合上的。起初,由皮亞諾公理我們有了自然數,有了定義在自然數集上的加法,這構成了一個代數系統&。任意兩個自然數的和還是自然數,加法在自然數集上是封閉的,還滿足交換律。

存在這麼一個自然數0,它與任意一個自然數x的和還是x,我們稱0是&代數系統的幺元。有幺元就可以定義逆元,對N中某一個元素x,去尋找一個y(在這個系統里記作-x),使得 x + y = 幺元0。如果存在這麼個y,那麼我們就可以很方便地計算減法,a - b = a + (-b),減法被轉化為了加法,第一點上可以認為加減法的難度沒有區別。

但是我們發現在自然數集範圍內,除了0,其他元素都找不到逆元。於是我們定義了負整數,將自然數集N擴展到了整數集Z。N和Z是等勢的,我們要面對的元素其實沒有增多,第二點上運算的難度也沒有增大。

乘除也是類似的,&的幺元是1,Z-{0}中除±1外所有元素都找不到對應的逆元,於是我們定義了分數,有了有理數集Q。Q與Z,N都是等勢的,第二點上運算的難度沒有增大。&上每個元素x都有了自己的逆元1/x,如此,對Q-{0}上任意的a,b,a / b = a *(1/b),除法被轉化為了乘法,從第一點上說除法和乘法的難度也是一樣的。[1]

而乘方則不同。乘方運算沒有交換律(因此乘方有兩個逆運算,已知左元和結果求右元的對數,已知右元和和結果求左元的開方)。&上我們只能找到右幺元1,即對任意有理數x,x ^ 1 = x ;卻找不到左幺元(設為y),即對任意有理數x,y ^ x = x[2]。因此&這個代數系統是沒有幺元的(必須同時具有相等的左右幺元才稱該代數系統有幺元),也就無法對各元素定義逆元。不論是開方,還是對數,都無法通過逆元轉化為乘方運算,而需尋找另外的演算法[3],難度自然不在一個層面。此外,開方還需引入無理數和虛數,得到實數集和複數集,這兩個集合都是不可數集,其中元素的數目和Q,Z,N不在一個層面,從這一點上說運算的難度也大大增加。

註:

1. 如 25 / 10 可化作 25 * 0.1。或許有人會問那 25 / 9 呢?將其視作 25 * 0.11111……,於是結果等於 2.5 + 0.25 + 0.025 + 0.0025 + ……,等於 2.777777…… 其他的無限循環小數也類似,運算難度依然在一個層面上的,從演算法的角度說,改變的只是 O-notation 前的係數,演算法複雜度並沒有asymtotically increased。

為什麼要排除0呢?因為在沒有定義無窮大的任一數集內,0對乘法都沒有逆元。這或許也是除0無意義的原因。

2. 兩邊取對數,有 x = log( y , x )

變形得 x / lgx = 1 / lgy。由於x是任意的,等式左側不是一個常數,於是等式右側也不是常數。因此不存在這樣的y。

3. 泰勒展開。若要得到精確值,需計算無窮項的和,且各項無可用於簡化計算的規律,演算法複雜度顯然跨越了一個層次。


普林斯頓數學指南(第二卷) (豆瓣)

第十篇《幾何和組合群論》貌似談到了群論和計算複雜性的聯繫

書不在手邊,等回去再查查


我覺得這裡有三個問題,

第一,為什麼一些運算的逆運算比原運算難?

一對運算總有難易,除非難易程度嚴格相等(加法和減法在實數域上「難易」是一樣的吧,因為減等於加負數)。

當你把簡單的那種叫原運算的時候,逆運算自然比原運算難。如果反過來把難的那種叫原運算,逆運算可不就比原運算簡單了?

而且個人覺得一般來說總是容易的那種被人先認識、研究以及教授(因為簡單嘛),然後才去研究、教授逆運算。於是如果你把先認識的那種叫做原運算的話,自然也是原運算運算比逆運算簡單。

第二,為什麼一些逆運算和原運算難度不等?

這個問題個人學識淺薄,無法全面回答。而且所謂的「難易」也很難精確定義。

你可以把運算看作一種操作,有的操作的最終狀態相比原狀態是熵增的(就像把拼圖打亂),而他的逆運算,顯然是熵減的(把拼圖恢復)。

熵減過程總的來說是比熵增「更難的」。

第三,為什麼一些逆運算比原運算難很多?

至於所謂的「難很多」,那是個人的主觀看法,只要難易程度有差別,你自可以把「難很多」這根線劃得很松,也會有人把這條線劃得很緊,從而覺得大多數逆運算都和原運算難易差不太多。

最後,矩陣求逆的逆運算難道不是自己???


既然微分和積分互為逆運算,為什麼積分比微分更難求解? - 數學 - 知乎


應該是定義的順序。一般都是先想到一個簡單的運算,先考察運算的時候才在某個時間後想到逆運算。很少有人會先想到一個很難的運算然後研究性質的時候才發現逆運算這麼簡單啊。如果有人不小心這麼做了,很快會領悟到反過來定義更方便。

方便是根本


占坑。

難度再高點的運算就叫Trapdoor了。。。


會不會數學運算當中也存在某種場,有些運算處在場勢較低的位置,而逆運算就相對較高,我們的計算就相當於做功。初中水平的物理和數學,不要噴我。。。


為什麼上山比下山難?


大合數分解難,反之很容易。


推薦閱讀:

一個連續函數的問題?
工科生除了學習課內的《高等數學》,還可以做什麼提高自己的數學水平?
既對稱又正交的矩陣一定是對角矩陣嗎?如果是,如何證明?
高等數學積分:1/(1+x2)的積分為什麼是arctanx而不是ln(1+x2)?
如何證明一個數學命題的不可證性?

TAG:演算法 | 數學 | 應用數學 | 高等數學 |