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

电子专业 徐 自远 671℃

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

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

代码

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

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

实现过程

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

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

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

网友评论

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

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

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

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

以上内容来源于开源中国

学编程技术,就到W3Cschool,如果你喜欢我们的文章,可以点击右上角关注我们;如果你想看到更多IT界的资讯,可以加我们的公众号。

公众号:w3cschoolcn

转载请注明:徐自远的乱七八糟小站 » 【《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!】

喜欢 (0)

苏ICP备18041234号-1 bei_an 苏公网安备 32021402001397号