《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!

不知道各位大牛有没有玩过雷神之锤的游戏?据说这是九十年代一个非常经典的游戏。雷神之锤的游戏,内容以及画面都相当不错,而且在很低配置的计算机中,玩游戏也相当流畅。雷神之锤3的作者是约翰卡马克,早前,雷神之锤三的源码公开。卡马克大神有一段代码,简直是吊炸天。

《《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!》

这段代码,据说主要用处是把一个数开平方并且取倒。经过测试之后,据说上面这段代码,尽然比(float)(1.0/sqrt(x))更快,而且是快4倍。

具体的实现过程比较复杂,下面是实现过程。

《《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!》

关于这段代码,网友又是怎么回复的:

网友一:这段代码魔法所在的地方,那就是0x5f3759df。

网友二:很简单的说,这个算法,是求得足够精确近似值比较高效的一种。那个常数相当不科学,据说至今为止,还没有人明白那个常数究竟是怎么得到的。

《《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!》

网友三:和系统函数相比较,这段代码的运算效率更快。

网友四:有没有具体的实现过程。

网友五:简直是吊炸天了。

据说后来,为了研究这段代码,普渡大学一位数学家开始了长期的研究过程。最后终于计算出了结果,他还把计算出的那个起始值同卡马克竞赛,但是他输了。从这边可以看出,卡马克确实很牛逼。关于上面这段代码,你觉得怎么样?

    原文作者:W3Cschool
    原文地址: https://www.jianshu.com/p/1740b85306ca
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞