差(X,0.5)
回答
我跑的測試,爲您檢查sqrt(x)
性能和pow(x,0.5)
1.
for(int i=0;i<100000000;i++)
pow(double(i),0.5);
2.
for(int i=0;i<100000000;i++)
sqrt(double(i));
一日一花20秒左右,其中爲第一個在我的電腦上花了大約2秒鐘。所以表現會更好。至於其他已經提到的可讀性是其他原因。
我得到相反的結果... –
我居然跑測試只有3次,以確保。我沒有得到太多的變化。請再檢查一次。 – banarun
[測試](http://ideone.com/dlwLGR)。 –
當然,如果你認爲只有數學等價的...
但是在算法來計算結果來看,sqrt
是專用於一兩件事,而pow
是通用的。
所以你可以(正確地)假設可以寫sqrt
的函數比編寫通用的pow
函數更快。
我記得讀書的地方,開方()是由IEEE規範保證是正確舍入的特殊情況。我會仔細查看來源。它也應該快一點,因爲它只需要處理一個案例。
即使他們是一樣的,它是很好的有一個常用功能的內置別名!
編輯:根據IEEE-754,兩者POW()函數和平方根()都應該被實現爲使得舍入值是最接近的可能浮點表示的實際值。但是,sqrt()仍然應該更快。
見http://stackoverflow.com/questions/22259537/ –
- 1. 創建形狀的熊貓幀(X ** 0.5,X ** 0.5)從大小x蟒的陣列
- 2. 使用ZXing掃描0.5 x 0.5釐米的代碼
- 3. 爲Node.js創建遞歸目錄0.5.x
- 4. 數值權衡(-0.5 *的std ::日誌(X))
- 5. 差(x)的
- 6. 差Vs'Y [X]`
- 7. float 0.5和double 0.5如何相等
- 8. rbenv誤差x 10.10.1
- 9. 差((<X)Y)和
- 10. 正常化數據,平均值爲0,標準差爲0.5,R
- 11. UnboundLocalError在ggplot 0.5
- 12. 從0.5到1.0
- 13. 在0.5和0.6?
- 14. HighCharts更改默認的x值間隔0.5
- 15. Sigmoidal曲線擬合,當y = 0.5時如何獲得x的值
- 16. x ++和++之間的差異x
- 17. 差(空,陣列(X))和陣列(x)的
- 18. 差異在Python 2.x和3.x
- 19. Numberlong(x)和Numberlong(「x」)之間的差異
- 20. 顯示X軸差距 - Highstocks
- 21. 遞增計數0.5?
- 22. 爲什麼0 = 0.5?
- 23. 圓至0.5在SQL
- 24. 取整爲0.5 SQL
- 25. WordPress導入器0.5
- 26. f(x)= 1爲-0.5 <X <0.5否則爲0,需要定義這個函數並在Matlab中繪製函數
- 27. 差異聲明:「變種X = ..」與「變種X,X = ..」
- 28. 1 ==(int)0.5 * 2 => false,1 ==((int)0.5 * 2)=> true,爲什麼?
- 29. -0.5到0.5之間的隨機數,有效
- 30. 錯誤position_stack(vjust = 0.5):未使用的參數(vjust = 0.5)
我不認爲這是對一個特殊原因。由於平方根操作非常普遍,與'pow()'相比,'sqrt(x)'提高了可讀性。 – GeekFactory
爲什麼有自行車時有自行車? –
當你可以添加循環時,爲什麼我們要乘法運算? –