※ 引述 《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%