设置

关灯

第五百四十八章 技术宅(第2/3页)

    器,当初林鸿实现超脑pu结构的时候,就是基于一个加法器结构,至于后面的减法、乘法以及除法等运算,都是对在这个加法器的基础上衍伸而来。

    直接使用牛顿迭代法来求平方根,这是普通人的做法,林鸿不用想都知道,如果真的按照这种方式来实现,显然不能过关。

    林鸿略微一思索便有了头绪,他查看了一下电脑中的编译器,发现这台电脑里面准备得非常充分,不但有市面上常见的一些编程语言编译器,如、bai、java、等语言,甚至还有一些非常小众的编程语言,如ada、blu、ip等等。

    最终,林鸿还是调出了电脑中的语言编译器,直接敲起代码来。

    霹雳啪啦,仅仅过了二十来秒之后,林鸿便完成了函数的编写。

    他调用用函数执行了一下,程序成功运行,没有任何地错误,一次通过。

    想了想,他再次删掉了两行,将两个步骤合并成了一个,最终的函数代码总数正好为十行。

    “好了。”林鸿道。

    站在他身后的广永元此刻还在皱着眉头看着他的程序。

    他想不通,林鸿为什么这么编写。

    “这么快就好了?”染发青年有些诧异。

    刚刚他让出座位的时候,便从一个角落拿出了一个掌上游戏机玩了起来,可是刚刚才开始玩,便听到林鸿说已经。

    这在众多挑战者当中,还是头一回。

    染发青年俯身过去看了一眼,脸上微微一愣,林鸿写的这十行代码,虽然他能看懂大部分,但是还有几个细节他一时之间也没弄懂。

    他顺手将林鸿的这个函数加入时间统计宏,执行一万次之后,最终显示出了时间,965毫秒,也就是说,不到一秒钟。

    他用敬服的眼神看着林鸿,说道:“你过关了。我在这里呆了两年了,两年来,从这里走过的人不下五十人,可是从来没有一个人做到你这一步,不但结果保证精度,并且执行一万次的时间不超过一秒。”

    林鸿笑笑,对于他的夸赞并没有什么可得意的,这些都是最基础的东西,只要理解了pu的运作,多想一想基本上应该都能达到的,没有好得意的。

    广永元这个时候出言问道:“阿鸿,我看得不是很懂,求平方根不是使用二分查找法么?”

    广永元最擅长的并不是这个方面,他毕竟是野路子出身,基础部分还不是很扎实,林鸿的这十行代码,他竟然看得满头雾水。

    他口中所说的二分查找,其实就是牛队迭代法的实现方式之一。

    林鸿点点头:“算法的确是这个,不过在这里,我使用二进制的移位代替了乘除。你看……”

    林鸿见他听得不是很懂,于是便重新调出编译器,下断点,跟踪变量的内存赋值,一边操作一边解释:“在二进制层面上,从前向后决定每一个二进制位上是0还是1,因此,我们可以从最高位向最低位,依次上1,看乘积结果是否大于目标数,如果大于目标数了,那一位就保留0这样的情况下,我们上1就不用真的去计算乘法,而是将之前的结果,加上上1以前的数左移1所在位置那么多位的两倍,再加上上1的位置左移上1的位置……”

    经过林鸿演示加解说,广永元这才恍然大悟,后面的青年也释然的点点头,他虽然知道大致原理,可是在细节方面还是有些地方没有理解,听了林鸿
    (本章未完,请翻页)