第一百章 101号选手提前交卷? (1 / 6) 首页

字体:      护眼 关灯

上一章 目录 下一章

第一百章 101号选手提前交卷? (1 / 6)
        相比起詹永枢院士的惊讶,郝云在考虑这个问题的时候倒是没有想的特别复杂,纯粹是挠头的时候灵机一动想出来的这个方法。

        程序首先猜测了一个接近1/sqrt(number)的值,然后运用牛顿迭代公式进行了迭代运算。

        单从算法逻辑上来讲,其实他改写之后的代码,和之前那个Q_Sqrt函数的代码并没有太大的区别。冰川引擎在文件中定义的Q_Sqrt函数,事实上也是采用的这个思路。

        而要说唯一哪里不同,大概就是在那个神秘的数字——0x5f375a86上了。

        根据牛顿迭代算法的原理,猜测值距离最终结果越接近,迭代的次数越少。而神秘的数字0x5f375a86,便是用来计算猜测值的。

        而郝云在尝试了几次之后意外地发现,如果使用“0x5f375a86”这个数,得到的y将非常接近1/sqrt(n),以至于最终执行牛顿迭代算法时,只需要2次代法就可以达到他所需要的精度!

        至于这个数是怎么得出来的?

        郝云也没办法解释。

        毕竟他只是遵循着自己的数学直觉,觉得原来那个程序中选取的数字不够好用,然后试着换了个更好用的数字试试。

        一开始他也试了好几次,发现更改的数字都没有原先那个数好用,直到后来灵机一动试到了这个0x5f375a86,发现居然只需要两次迭代就能完成整个计算过程。

        老实说,他自己也惊讶的不行。

        可能……

        这也和他的数学属性达到了精通有点关系?

        总而言之,采用了0x5f375a86这个特殊的数字之后,单从运算步数来看,整个函数的运算效率将比原本文件中定义的Q_Sqrt函数快上足足两倍!

        内容未完,下一页继续阅读

更多完整内容阅读登陆

《墨缘文学网,https://wap.mywenxue.org》
加入书签我的书架


上一章 目录 下一章