知道我們可以使用分而治之算法來計算大指數,例如2 exp 100 = 2 exp(50) * 2 exp(50)
,這是更有效率,這種方法是有效的使用根?例如2 exp (1/100) = (2 exp(1/50)) exp(1/50)
?分而治之的方法來計算根
換句話說,我想知道(n exp(1/x))
對(n exp(1/y))
更有效x < y
和其中x和y是整數。
知道我們可以使用分而治之算法來計算大指數,例如2 exp 100 = 2 exp(50) * 2 exp(50)
,這是更有效率,這種方法是有效的使用根?例如2 exp (1/100) = (2 exp(1/50)) exp(1/50)
?分而治之的方法來計算根
換句話說,我想知道(n exp(1/x))
對(n exp(1/y))
更有效x < y
和其中x和y是整數。
由於x,y
是浮點數exp(1/x)
對於所有的x<y
可能不會比exp(1/y)
效率更高。
不過分點而治之算法是
如果我們有像exp(1/x)
我們不會再計算它,即我們把2^N
成更小的尺寸2^(N/2) * 2^(N/2)
兩個同樣的問題,我們計算2^(N/2)
只有一次 。
同樣對於exp(2/x)
可以分爲exp(1/x)*exp(1/x)
,我們將只需要計算exp(1/x)
一次。這應該會提高性能。
還有較小的數字在分母的幫助。
所以我認爲這應該很好。
我不確定。得到答案的最佳方法是使用適當的庫。我只是認爲很多問題都沒有被人注意,並在這裏的地毯下掃蕩。應用數學是一門令人興奮的學科,但也可能很難。我認爲我們在這裏過分簡化了答案。另外,我會使用一個庫來計算一個指數,而不是自己決定。 – 2010-04-12 21:03:03
好吧,接着我的問題,然後對我的例子中的數學錯誤感到抱歉:P – fimbeault 2010-04-14 01:24:51
我不認爲當你有非整數指數時使用分而治之的方法。我會假設用一個泰勒多項式來計算x^y如e ^(y ln(x))。你可以用分而治之計算y的整數部分,然後再乘以實部。但把它分成兩半是沒有意義的。也:
2 EXP(1/100)=(2 EXP(1/50))EXP(1/50)
這是不正確的。 (1/100)
(2exp(1/50))exp(1/50)= 2exp(1/50 + 1/50)= 2 * exp(1/25)!= 2exp(1/100)
你會做:
2 EXP(1/100)= 2 * EXP(1/200)* EXP(1/200)
他似乎意味着別的(非標準)與「exp」。 – Svante 2010-04-13 11:18:56
好的,即使他指的是指數運算符,他寫2 ^(1/100)= 2 ^(1/50)2 ^(1/50)時仍然是錯誤的。它仍然必須是2 ^(1/100)= 2 ^(1/200)2 ^(1/200)。我實際上想不出一種會影響他的行爲。 – JSchlather 2010-04-13 13:39:08
大概不會。你正在處理浮動,而不是整數在這裏... – 2010-04-12 18:47:09
這是我想知道的是:(n exp(1/x))對於x
fimbeault
2010-04-12 18:51:23
@ hellsoul153您可以在http://mathoverflow.net上提問 – stacker 2010-04-12 19:20:57