https://y.music.163.com/m/song/19553390
>算法
算法,Algorithm,顾名思义,即计算的方法。在计算机学的意义下,算法接受输入,进行计算,然后输出。与“计算机”这种概念不同的是,每个算法都是为了一种设计算法时就预先定下的理念或者目的所创造的,也就是说,其目的性很强。而计算机可以用来干繁多的事物。
用个粗鲁的比方:榨汁机和人都需要吃水果,但榨汁器有着将水果转化为果汁的目的,而人广泛来说没有这么明确的目的。
算法在数学意义上可以理解为一种函数,function。Function这个词本身就有功能的意思。举个例子,加法是一种算法,其接受两个变量(不要忘了,变量是存储于某处的数据,之后会有更加明确的定义),输出一个数字,那个数字是变量中两数之和。
就像把一个盒子(变量)里的苹果(数据)和另一个盒子(变量)里的香蕉(数据)同时放进“乘法”这种榨汁机里,它们会变成处理好的果汁(数据)。别忘了再拿个杯子(变量)把果汁(数据)装进去。
我们写作:
c←x(a,b)
其中x指代乘法,a,b与c为变量。a与b为输入,箭头符号指赋值,即让输出的数字被装到c中,或者说更改c的内容,使其与输出的数字相同。这样,我们想要这个数字的时候就可以问c要。
为了写法简便,我们用等于号(=)来替代箭头符号,此时的等于号表示赋值而不是相等。
也就是,c=x(a,b)
乘法这种算法用x(a,b)的形式不符合我们的数学认知,所以我们可以简写为a*b,即c=a*b。
这代表使用算法将a与b相乘,将算法的返回值(即算法输出的那个值)赋值给c。
而乘法的实现原理,是将a与b的每一位相乘,将得到的结果在进位后相加。如果不知道二进制乘法是怎么进行的,建议先自行学习二进制乘法。大多数情况下用不到,但身为计算机系不会这个有点丢人,而且终究还是有用的。
好好珍惜这个简单的算法,一般的算法不会这么简单。
一个人的脑中藏着无数个变量,而这些变量在神经元的电信号传播中不断变换。我们是藏在变量之中的游魂。
又如同马克思曾经说过的,“一切已死的先辈们的传统,像梦魇一样纠缠着活人的头脑”。我们在潜移默化之中,已经被文化传统赋予了一些先辈的值。