第1章 求解Ad Hoc类问题的编程实验
正如现实世界的事物是多姿多彩、千变万化的一样,在解题中经常会出现一些不能套用简单的条条框框和现成模式,需要独立思考、见解独创和有所创新的非标准题。这类试题被称作Ad Hoc类试题(Ad Hoc源自于拉丁语,意思是“为每种目的而”)。其特征是不能简单地对应经典算法,也没有模式化的求解方法,需要编程者自己构建算法来解答试题。由于算法自创,因此能够比较综合地反映编程者的智慧、知识基础和创造性思维的能力。当然,自创的算法只针对问题本身,探索其独有性质,是一种专为解决某个特定的问题或完成某项特定的任务而设计的解决方案,因此一般不具备普适意义和可推广性。
求解Ad Hoc类问题的方法多样,但按照数理分析和思维方式的角度,大致可分两大类:
1)机理分析法,采用顺向思维方式,从分析内部机理出发顺推算法。
2)统计分析法,采用逆向思维方式,从分析部分解出发倒推算法。
这两种方法不是孤立和排斥的,在求解Ad Hoc类问题的过程中,既可以根据需要选择其一,也可以两者兼用。
下面展开机理分析法和统计分析法的编程实验。