Top-down design——解决问题的基本法
来源:互联网 发布:运动keep是什么软件 编辑:程序博客网 时间:2024/06/06 07:28
简介
自顶向下设计:一种逐步求精的设计程序的过程和方法。对要完成的任务进行分解,先对最高层次中的问题进行定义、设计、编程和测试,而将其中未解决的问题作为一个子任务放到下一层次中去解决。这样逐层、逐个地进行定义、设计、编程和测试,直到所有层次上的问题均由实用程序来解决,就能设计出具有层次结构的程序。
详解
不得不说,这个名字听起来好像很高深莫测,但其实所谓的“自顶向下”是符合我们大脑的一般思考过程的,当我们在遇到一些多过程的问题时会很自然的自顶向下分解问题。比如做笔记,通常我们分三步走:1.拿纸 2.拿笔 3.写字。既然每个人都会,那为什么还要特意提出这个概念呢?这是因为像那样下意识地分解问题只会在过程较少时实现,当过程变得十分繁杂时人们的大脑便无法轻松完成问题分解,这时就需要人们紧扣自顶向下的基本法,主动地去分解问题,逐步求精。
例子
哥德巴赫猜想是数论中的一个著名难题, 是由法国数学爱好者克里斯蒂安·哥德巴赫于1742年在给著名数学家欧拉的一封信中提出的。
“哥德巴赫猜想”可以表述为:任何一个大于等于4的偶数均可以表示为两个素数之和。
尽管这个问题看来如此简明清晰, 但二百多年来, 虽有无数数学家为其呕心沥血、绞尽脑汁, 却始终无人能够证明或者证伪这个猜想 。
求解
第一步 提出问题: 验证哥德巴赫猜想
第二步 设一上限数M,验证从4到M的所有偶数是否能被分解为两个素数之和
1. 定义一个变量X,初值为4
2. 每次令其加2,并验证X能否 被分解为两个素数之和,直到 X不小于M为止
第三步 如何验证X是否能被分解为两个素数之和
1. 从P=2开始
2. 判别X—P是否仍为素数
3. 若是,打印该偶数的分解式
4. 否则,换更大的素数,再继续执行2;如此循环,直到用于检测的素数大于X/2且X 与其之差仍不是素数,则打印“哥德巴赫猜想”不成立
第四步 查找下一个素数
(1)当前素数P加1
(2)判别P是否是素数
(3)若是素数,返回P
(4)否则,P加1,继续执行( 2)
经过四步分解精化,将“验证哥德巴赫猜想”这个命题已经分解为计算机可以求解的数学模型了,模块化数学模型,化繁为简,最终得出结果。
- Top-down design——解决问题的基本法
- Top-down Design简介
- Top-Down design
- Top-Down Design
- “自顶向下,逐步求精”——Top-down Design
- Top-Down!!!
- Top-down
- 基本法
- 用一个日历程序来诠释top-down design和bottom-up implementation
- Writing Better T-SQL: Top-Down Design May Not be the Best Choice
- 解决问题的途径—论坛
- Xpath—解决问题的良药
- Top down clustering
- 后缀数组的自顶向下(top-down)遍历算法
- 后缀树的自顶向下(top-down)遍历
- Top-down-Rpg-Start-kit插件的使用与二次开发
- “Top-down”---至顶向下的设计方法
- 解决问题的前提——放空自己
- bzoj3224 Tyvj 1728 普通平衡树 ( 替罪羊树)
- Wannafly挑战赛4 C割草机 模拟
- android 懒人教程:一步步开发android studio 模板插件
- Android调用摄像头取像
- 3. ROS编程入门—Wall Following
- Top-down design——解决问题的基本法
- android最新版关于.so文件的制作封装与跨平台引用
- NIO详解 五
- 【学习C++】学习C++ -> 构造函数与析构函数
- 爬带登陆名和密码以及验证码的网站
- MyBatis之全局配置文件(Configuration XML)之引入外部配置文件(properties)
- 关于Java异常处理
- hdu-1873-看病要排队
- 【JZOJ 5485】 字符串