第一百章 101号选手提前交卷?
相比起詹永枢院士的惊讶,郝云在考虑这个问题的时候倒是没有想的特别复杂,纯粹是挠头的时候灵机一动想出来的这个方法。
程序首先猜测了一个接近1/sqrt(number)的值,然后运用牛顿迭代公式进行了迭代运算。
单从算法逻辑上来讲,其实他改写之后的代码,和之前那个_qrt函数的代码并没有太大的区别。冰川引擎在math.c文件中定义的_qrt函数,事实上也是采用的这个思路。
而要说唯一哪里不同,大概就是在那个神秘的数字——0x5f375a86上了。
根据牛顿迭代算法的原理,猜测值距离最终结果越接近,迭代的次数越少。而神秘的数字0x5f375a86,便是用来计算猜测值的。
而郝云在尝试了几次之后意外地发现,如果使用“0x5f375a86”这个数,得到的y将非常接近1/sqrt(n),以至于最终执行牛顿迭代算法时,只需要2次代法就可以达到他所需要的精度!
至于这个数是怎么得出来的?
郝云也没办法解释。
毕竟他只是遵循着自己的数学直觉,觉得原来那个程序中选取的数字不够好用,然后试着换了个更好用的数字试试。
一开始他也试了好几次,发现更改的数字都没有原先那个数好用,直到后来灵机一动试到了这个0x5f375a86,发现居然只需要两次迭代就能完成整个计算过程。
老实说,他自己也惊讶的不行。
可能……
这也和他的数学属性达到了精通有点关系?
总而言之,采用了0x5f375a86这个特殊的数字之后,单从运算步数来看,整个函数的运算效率将比原本math.c文件中定义的_qrt函数快上足足两倍!
至于这个结果会产生怎样的效果……
老实说郝云也没有一个准确的概念。
毕竟他对这款冰川引擎的了解,远远没有达到业内人士的高度。
之前他虽然做过游戏,但其实也就只做过2048这一款游戏而已。神殿逃亡算是运用到了和冰川引擎同源的一款开发软件,但那款游戏基本上都是李宗正一个人完成的,郝云压根儿就没参与到开发环节中,就算参与进去了件中的函数已经足够完美了,就像加减乘除这些工具一样可以直接使用。没想到居然还有如此神奇的方法,能够让完美的边界再向上一步。”
“这小子是个人才啊!”
不知心里头在想着些什么,张存浩教授沉默的表情中忽然浮起了一丝纠结。
挣扎了许久之后,他看向了自己的老师詹永枢院士。
“不过恕我直言,这样的答案真的没问题吗?”
詹永枢院士看了他一眼。
“你还不服气吗?”
“倒是没有不服气,我只是觉得……有点儿憋屈,”张存浩教授憋了好久,才说出了心里话,“这根本不是程序意义上的解法,他甚至压根儿就没有修改哪怕一行代码。无论是谁都能看得出来……这特么,根本就是数学!”
是的,这特么根本就是数学!
那个参赛者只不过是修改了一个随机数,结果凑巧地让计算“反平方倒数”的底层函数少做了几次牛顿迭代,然后就这么“积少成多”地实现了对引擎的优化?
说到底为什么偏偏是这个数字啊?!
毕竟不是数学家,张存浩想的都快崩溃了,也没想出来。
看着一脸抓狂的学生,詹永枢院士忽然笑了。
“谁说不是呢?”
他也没想到这个数字到底是怎么算出来的,而且是完全一点头绪都没有的那种。
完全依靠直觉?
类似的情况倒也不是没有过,有些数学常数其实最开始也是依靠经验猜出来的,直达十几年年甚至是几个世纪之后才被证明其中的数学原理。
想到这儿,看着那个正在离开考场的考生,詹永枢院士不禁在心中轻声感慨。
可能……
这就是天才吧。
本章已完成!
从斗罗开始修仙的奥特曼
爱你,来日方长
护花兵王
完美天王
陆总,夫人开挂A爆了
招灵
异世界唯一的空间系能力
重生之狂仙逆天
惊鸿变
本宫就是撩个汉