※ 引述 《SkyPlus (Sky)》 之銘言:
: https://liuslog.wordpress.com/2014/06/20/0x5f3759df/
:
: 1/sqrt(x) 用神秘的數字y=0x5f3759df 帶入:
:
: y+y*(1.5-(x*y^2)/2) 後直接算出來
:
針對inverse square root
其實回覆提供的文章沒有很好的解釋神秘數字的由來
https://youtu.be/p8u_k2LIZyo
我認為這部影片講解得很清楚
簡單來說是利用浮點數bit representation與log base 2近似的特性
直接把bit representation當log處理
神秘數字則是轉換過程留下的常數
所以後面只需要一次牛頓插值法就能把誤差壓到1%