相比起詹永枢院士的惊讶,郝云在考虑这个问题的时候倒是没有想的特别复杂,纯粹是挠
的时候灵机一动想出来的这个方法。最新地址发送任意邮件到 ltx Sba@gmail.ㄈòМ 获取
程序首先猜测了一个接近1/sqrt(number)的值,然后运用牛顿迭代公式进行了迭代运算。
单从算法逻辑上来讲,其实他改写之后的代码,和之前那个q_sqrt函数的代码并没有太大的区别。冰川引擎在math.c文件中定义的q_sqrt函数,事实上也是采用的这个思路。
而要说唯一哪里不同,大概就是在那个神秘的数字——0x5f375a86上了。
根据牛顿迭代算法的原理,猜测值距离最终结果越接近,迭代的次数越少。而神秘的数字0x5f375a86,便是用来计算猜测值的。
而郝云在尝试了几次之后意外地发现,如果使用“0x5f375a86”这个数,得到的y将非常接近1/sqrt(n),以至于最终执行牛顿迭代算法时,只需要2次代法就可以达到他所需要的
度!
至于这个数是怎么得出来的?
郝云也没办法解释。
毕竟他只是遵循着自己的数学直觉,觉得原来那个程序中选取的数字不够好用,然后试着换了个更好用的数字试试。
一开始他也试了好几次,发现更改的数字都没有原先那个数好用,直到后来灵机一动试到了这个0x5f375a86,发现居然只需要两次迭代就能完成整个计算过程。
老实说,他自己也惊讶的不行。
可能……
这也和他的数学属
达到了
通有点关系?
总而言之,采用了0x5f375a86这个特殊的数字之后,单从运算步数来看,整个函数的运算效率将比原本math.c文件中定义的q_sqrt函数快上足足两倍!
至于这个结果会产生怎样的效果……
老实说郝云也没有一个准确的概念。
毕竟他对这款冰川引擎的了解,远远没有达到业内
士的高度。
之前他虽然做过游戏,但其实也就只做过2048这一款游戏而已。神殿逃亡算是运用到了和冰川引擎同源的一款开发软件,但那款游戏基本上都是李宗正一个
完成的,郝云压根儿就没参与到开发环节中,就算参与进去了八成也不会研究引擎的源代码。
这个世界的游戏开发工具已经进化到足够傻瓜的程度,除开那些大制作之外,绝大多数的中小型游戏都是能够单纯的依靠开发工具,以及二级程度的编程水平来实现的。
“……话说到底咋测试引擎效率提升了多少?这电脑上就没有一个打分软件,或者测试用的游戏吗?”
郝云在电脑上仔细搜寻了一番,然而根本没有找到那种能够用来给引擎打分的工具软件,也没找到能测试引擎
能的游戏。
事实上,主办方确实没有准备这种东西。
毕竟从一开始,他们压根儿就没考虑过有
能真的完成这道送命题。
“我去,这是搞毛线啊?”
搜索了一番之后仍然没有找到检测工具,郝云哭笑不得地看着屏幕,彻底没辙了。
总不能当场开发一款游戏来跑分吧?
虽然也不是不行,但手边一点素材都没有,电脑更是不能联网,总不能从最基础的素材开始做起吧?
一番纠结之后,最终郝云还是放弃了。
算了。
反正自己也想不到更好的优化方法了……
如此想着,郝云叹了
气,伸手点了下考试程序中的提
选项,然后便双手离开了键盘——也就是所谓的ak了。
考试只设置了三天的最长时限,并没有设置最低
卷时间,提
了答案随时都可以离场。
因为即便是提前
卷也不会加分,所以大多数
就算提前做完了也会选择熬到饭点再
卷,和一起来参赛的朋友出去吃饭。
郝云一开始也是这么打算的,但奈何他的隔间里啥也没有,除了
坐着等之外根本没事
可
,于是只能从自己的隔间里出来了。
离开考场的时候,站在安检
的还是那个保安小哥。
郝云看了他一眼,他也盯着郝云看了一会儿。
“上厕所?你走错方向了。”
“没,我考完了。”
“考,考完了?”
“嗯,”郝云点了下
,指了指体育馆的出
,“我可以出去了吗?”
总算是从愣神中回过了神来,保安小哥木木地点了下
,解开了拦在
处的隔离带。
两年前的希望杯也是在夏东师范大学比的,当时的他也是站在这里维持秩序。如果他没记错的话,当时最早
卷的考生,也是下午五点钟的事
了。
然而现在,距离九点钟考试正式开始还没一个小时……
这特么是
了白卷吗?
好歹也是从几万份作品中
围的决赛强者,不至于
白卷吧?!
事实上,惊讶的不只是站在考场
的几名保安小哥。
站在考场后台的主试委员会们,远远比这里的所有
都要惊讶。
尤其是张存浩教授。
在看完了郝云重写的代码之后,整个
都傻掉了。
盯着
稿纸上密密麻麻的算式,不信邪地笔算了无数遍的张存浩教授,终于忍不住
了一句粗
。
“卧槽!这家伙……是怎么想到这个数字的?”
这……
这也太不可思了!
仅仅只更改了一个猜测数,就让整个函数的运算效率提升了足足两倍?!
站在张存浩教授的旁边,龙威集团软件开发部门的冯正青经理,悄悄拉了他一把,小声问道,“如果将它运用在冰川引擎上能提升多少运行效率?”
“保守估计百分之二十,3d引擎中针对反平方倒数的相关运算还是不少的……”
“怎么会这么多?”冯经理微微动容。
身为外行
的他并不懂那么多门道,也不懂什么是牛顿迭代算法,只是觉得这简直是不可思议!
冰川引擎虽然不是龙威集团的核心研发项目,但该项目组里的计算机大牛也绝对不少。然而这么多
都没有发现这个改进方法,却被一个学生给发现了?
换谁也特么的没法信啊!
满对着写满的
稿纸,张存浩教授扔在苦思冥想着,虽然他已经渐渐感觉到这个东西超出了他所熟悉的研究领域。
站在他旁边的是一名来自首都国防大学的老教授,只见这位老教授在沉默许久之后,也是发出了一声由衷的感慨。
“不可思议……没想到居然让这家伙在最不可能找到突
的地方找到了突
。我之前一直认为math.c文件中的函数已经足够完美了,就像加减乘除这些工具一样可以直接使用。没想到居然还有如此神奇的方法,能够让完美的边界再向上一步。”
“这小子是个
才啊!”
不知心里
在想着些什么,张存浩教授沉默的表
中忽然浮起了一丝纠结。
挣扎了许久之后,他看向了自己的老师詹永枢院士。
“不过恕我直言,这样的答案真的没问