“自顶向下”
是将复杂、大的问题划分为小问题,找出问题的关键、重点所在,然后用精确的思维定性、定量地去描述问题。
“逐步求精”
是将现实世界的问题经抽象转化为逻辑空间或求解空间的问题。复杂问题经抽象化处理变为相对比较简单的问题。经若干步抽象(精化)处理,最后到求解域中只是比较简单的编程问题。
下面举一个例子:验证哥德巴赫猜想
“哥德巴赫猜想”可以表述为:
任何一个大于等于4的偶数均可以表示为两个素数之和。
第一步 提出问题
第二步 分解思路
- 如何表示大于等于4的偶数
for (int i = 4; ; i += 2)
- 如何验证某一个偶数能否被分解为素数
(分解为两个数的和 看两个数是否同时为素数,只要有一个偶数不行,就跳出循环,哥德巴赫猜想错误) - 如何判定一个数为素数
(针对一个数,看它能否整除比他开根号小的整数,不能的话是素数) 查找下一个数
经过四步分解精化,将“验证哥德巴赫猜想”这个命题已经分解为计算机可以求解的数学模型了。
可以理解为 先用脑子想好一步步算法 再用计算机语言翻译 最后合并 检查细节 大部分编程问题就可以迎刃而解了