背景: 字色: 字号: 双击滚屏:
爱阅小说 > 高人竟在我身边 > 第一百章 101号选手提前交卷?

第一百章 101号选手提前交卷?

作者:晨星LL 返回目录

相比起詹永枢院士的惊讶,郝云在考虑这个问题的时候倒是没有想的特别复杂,纯粹是挠头的时候灵机一动想出来的这个方法。


程序首先猜测了一个接近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文件中的函数已经足够完美了,就像加减乘除这些工具一样可以直接使用。没想到居然还有如此神奇的方法,能够让完美的边界再向上一步。”


“这小子是个人才啊!”


不知心里头在想着些什么,张存浩教授沉默的表情中忽然浮起了一丝纠结。


挣扎了许久之后,他看向了自己的老师詹永枢院士。


“不过恕我直言,这样的答案真的没问题吗?”


詹永枢院士看了他一眼。


“你还不服气吗?”


“倒是没有不服气,我只是觉得……有点儿憋屈,”张存浩教授憋了好久,才说出了心里话,“这根本不是程序意义上的解法,他甚至压根儿就没有修改哪怕一行代码。无论是谁都能看得出来……这特么,根本就是数学!”


是的,这特么根本就是数学!


那个参赛者只不过是修改了一个随机数,结果凑巧地让计算“反平方倒数”的底层函数少做了几次牛顿迭代,然后就这么“积少成多”地实现了对引擎的优化?


说到底为什么偏偏是这个数字啊?!


毕竟不是数学家,张存浩想的都快崩溃了,也没想出来。


看着一脸抓狂的学生,詹永枢院士忽然笑了。


“谁说不是呢?”


他也没想到这个数字到底是怎么算出来的,而且是完全一点头绪都没有的那种。


完全依靠直觉?


类似的情况倒也不是没有过,有些数学常数其实最开始也是依靠经验猜出来的,直达十几年年甚至是几个世纪之后才被证明其中的数学原理。


想到这儿,看着那个正在离开考场的考生,詹永枢院士不禁在心中轻声感慨。


可能……


这就是天才吧。