努努书坊

繁体版 简体版
努努书坊 > 超脑黑客 > 第五百四十八章 技术宅

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

数学中是一个非常重要同时也非常复杂的运算,在计算机中实现这种函数通常比较困难,所以编程语言一般都会对这些函数进行封装,程序员在编程的时候,如果涉及到平方根运算,直接调用函数库中的函数就行了,很少有人会懂得底层到底是如何实现的。

而且,能够实现是一方面,能不能做到运算效率高效又是另外一方面。

程序的运行效率,往往就是高手和菜鸟之间的重要区别,真正的黑客,编程的时候,不仅仅只是将功能实现,还会追求最高效率,有时候可能只是一个符号的变化,其执行效率便天差地别。

执行一次的区别可能看不出来,可是如果循环一千次,一万次呢?

高手和菜鸟编写的程序,在效率上往往有着很多倍的差距,要想编写出高效优雅的程序,必须有着对编程语言和计算机底层的本质理解,同时还得拥有丰富的编程经验,在这方面可做不得假,实践是唯一提高自身实力的方式。

林鸿知道,求平方根的运算,有一个算法叫做牛顿迭代法,其原理为:

如果一个数为X,假设它的平方根为Y,如果Y的平方和X相差大于某个给定的误差,就继续假设下一个值,如此持续下去,直到最终得到在允许误差内的值。

至于如何假设这个值,使用的方式便是取平均值,其中必须多次用到除法和乘法。

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

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

林鸿略微一思索便有了头绪,他查看了一下电脑中的编译器,发现这台电脑里面

『加入书签,方便阅读』