《雷神之锤3》中平方根算法你见过吗,这段代码简直吊炸天!
不知道各位大牛有没有玩过雷神之锤的游戏?据说这是九十年代一个非常经典的游戏。雷神之锤的游戏,内容以及画面都相当不错,而且在很低配置的计算机中,玩游戏也相当流畅。雷神之锤3的作者是约翰卡马克,早前,雷神之锤三的源码公开。卡马克大神有一段代码,简直是吊炸天。
这段代码,据说主要用处是把一个数开平方并且取倒。经过测试之后,据说上面这段代码,尽然比(float)(1.0/sqrt(x))更快,而且是快4倍。
具体的实现过程比较复杂,下面是实现过程。
关于这段代码,网友又是怎么回复的:
网友一:这段代码魔法所在的地方,那就是0x5f3759df。
网友二:很简单的说,这个算法,是求得足够精确近似值比较高效的一种。那个常数相当不科学,据说至今为止,还没有人明白那个常数究竟是怎么得到的。
网友三:和系统函数相比较,这段代码的运算效率更快。
网友四:有没有具体的实现过程。
网友五:简直是吊炸天了。
据说后来,为了研究这段代码,普渡大学一位数学家开始了长期的研究过程。最后终于计算出了结果,他还把计算出的那个起始值同卡马克竞赛,但是他输了。从这边可以看出,卡马克确实很牛逼。关于上面这段代码,你觉得怎么样?
以上内容来源于开源中国
学编程技术,就到W3Cschool,如果你喜欢我们的文章,可以点击右上角关注我们;如果你想看到更多IT界的资讯,可以加我们的公众号。
公众号:w3cschoolcn