做法什么意思?
“做”是一个过程,这个过程可能是很复杂的,也可能是很简单。 比如我们要去一个目的地,有两条路可走,一条是直接开车过去,另一条路是要先坐船再坐车。那么走这两条路的过程就是“做”这个行为的过程。 而程序就是做这件事的步骤。 比如上面提到的从起点到终点的路线,如果按直线走,需要经过两个城市,那么这两个城市的名字就是这条路径的程序。
同理,如果我们想计算从A地到B地的最短路程,那么编程实现这个过程也就是“做”这个行为的程序。 这个程序可以通过多种算法来实现,假设我们最后通过某种方式实现了Dijkstra's算法,那么这个算法就是“做”这个行为的程序。 也就是说,只要实现了某个算法或者流程,就可以认为这个过程是这个问题的“做法”了。
当然,很多时候我们并不需要实现最优化的问题,这时候问题就变成了求解一个函数的最值。这种情况下,能够求出函数值的程序也可以认为是这个问题“做”的程序。 因此我们可以把上面的定义写成如下形式: 设S表示某一计算机任务的所有可能的操作序列,D为S中元素的数量。则对所有的S,都有下面形式的表达式: 其中,f(x)代表完成S所需执行的指令数;g(x)代表执行每条指令所花费的处理时间。然后,我们可以通过下面的公式来度量完成S所需的总成本: 根据以上公式,我们就可以把“怎么做”翻译成“如何编写程序”来解决问题了(虽然有些问题你可能根本不需要考虑时间复杂度和空间复杂度的问题)。
在计算机科学里,很多复杂的问题都可以抽象成一个或多个问题变量,而这些变量的取值范围往往可以表示为集合,所以很多问题都可以通过查找已有的解决办法来解决。这些解决办法往往是以算法的形式给出,所以可以说,算法是对“怎么办”的较好描述。