MIT课程笔记-01找平方根

今天看到了一个很有趣的例题:
如何教会电脑找到一个数的平方根?

刚看到这个题,我第一印象就觉得好难,如果是4、9、16这样的数还好,就对应着2、3、4,但是如果是2、3这样的数呢?该怎么教会电脑开平方根?

后来看了老师演示的过程,瞬间有种才知道大清亡了的感觉……

过程是这样,假设要找数字y的平方根,可以让电脑先在0到y中随机选一个数字x,然后带入公式(y/x+x)/2,得到一个新的x,然后用新的x再带入公式(y/x+x)/2中,再得到一个新的x的值,直到x在代入公司前后的值的差达到一个你需要的精度(比如0.01,0.00001等等),然后让电脑结束代入,这个x值就是数字y的平方根了。

比如找9的平方根,精确到0.001
我们先随机选6带入,得到新的值为3.75,
然后用3.75代入,得到新值3.075,
然后用3.075代入,得到新值3.00091463,
再用3.00091463代入,得到3.00000014,
这时代入公式前后的值差别已经远小于0.001了,所以停止取值3.00000014,精确到0.001后取值3.000。

同样,再用3举例,结果精确到0.001。
先随机选1代入,得2,
用2代入,得1.75,
用1.75代入,得1.73214286,
用1.73214286代入,得1.73205081,
这时这时代入值前后差已经远小于0.001,所以结果取值1.73205081,精确到0.001得1.732。

看似很复杂的过程,但是在电脑上却是瞬间就出来,不得不赞叹程序员的聪明,也不得不赞叹电脑的强大。

你可能感兴趣的:(MIT课程笔记-01找平方根)