第六讲 计算思维之问题求解思想—1

合集下载

专题五 计算思维与问题求解

专题五 计算思维与问题求解

分析过程
Copyright © 2013 College of Computer(HDU)
第六讲 计算思维与问题求解
引导问题
浅谈计算思维
问题求解
Copyright © 2013 College of Computer(HDU)
18
计算思维----定义
“我们所使用的工具影响着我们的 思维方式和思维习惯,从而也将深刻 地影响着我们的思维能力。”
Copyright © 2013 College of Computer(HDU)
31
计算思维----能力培养

不插电的计算思维——视频范例(交朋友算法)
Copyright © 2013 College of Computer(HDU)
32
计算思维----能力培养

不插电的计算思维——视频范例(交朋友算法)


信息的输入输出 信息的表示 信息的存储 信息的处理 数据的描述 控制结构 计算方法 高级语言程序设计 环境与实现
输入: A B C
输出:
Copyright © 2013 College of Computer(HDU)
11
导引问答题(二)
Copyright © 2013 College of Computer(HDU)
B
C
T
最终结果
第三步: A 交换:
Copyright © 2013 College of Computer(HDU)
B
C
算法表示
开始
A
N
分别从键盘输入数值A,B,C
B>C?
Y
N
交换B,C的值,T=B,B=C,C=T
A>B?

计算思维(201201)

计算思维(201201)

的处理包括分析、抽象、综合、概括等。

科学的重要性在于,它是真理,推动着人类文明进步和科技的发展。

科学思维是什么呢?它一般包括理论思维、实验思维和计算思维。

理论思维又称推理思维,以推理和演绎为特征,以数学学科为代表。

实验思维又称实证思维,以观察和总结自然规律为特征,以物理学科为代表。

计算思维又称构造思维,以设计和构造为特征,以计算机学科为代表。

国科发财〔2008〕197号文《关于创新方法工作的若干意见》认为“科学思维不仅是一切科学研究和技术发展的起点,而且始终贯穿于科学研究和技术发展的全过程,是创新的灵魂”。

科学思维的含义和重要性在于它反映的是事物的本质和规律。

计算思维计算思维的定义:它是运用计算的基础概念(Fundamental Concept )去求解问题、设计系统和理解人类行为的一种方法(Approach ),是一类今天我主要谈谈计算思维。

我报告的题目是:“计算思维:大学计算教育的振兴,科学工程研究的创新”。

为什么讲这个题目,因为是计算机大会,在座的都是搞计算机的。

那么我们的计算机科学与计算机学科的现状是什么样的?计算思维将如何成为振兴大学计算教育的途径?计算思维与技术创新又是什么关系?计算科学是很伟大的,理论科学、实验科学、计算科学被称为推动人类文明进步和科技发展的三大科学,或者叫三大支柱。

但是我们的现状是什么呢?计算机学科,计算机教育,尤其计算机的基础教育是有问题的,甚至计算机基础教育存在着危机。

作为计算机教育者和改革者,我们应该积极地改变这种局面,纠正社会上对计算机科学的片面理解。

要改变计算机学科不需要什么理论的错误观点,要扭转“计算机只是工具”的社会不良形象,要消除计算机学科特别是计算机基础教育“可有可无”的影响,要积极传播计算机科学的魅力、愉悦和力量。

要改变现在的情况,就要提倡计算思维,宣扬计算思维在教育和科研中的作用,并把这种思维普适化、大众化,真正融入到人类的一切活动中。

科学与思维什么是科学?达尔文曾经给科学下过一个定义:“科学就是整理事实,从中发现规律,做出结论”。

001计算思维PPT课件

001计算思维PPT课件
计算科学对其他学科中的问题进行计算机模拟或 者其他形式的计算而形成的诸如计算物理、计算 化学等学科统称为计算学科。(计算视角)
计算学科/Computing Discipline:是对 描述和变换信息的算法过程进行系统的研究 ,它包括算法过程的理论、分析、设计、效 率分析、实现和应用等。(计算机视角)
以自然界为主要研究对象,运用实证、 理性和臻美等方法,揭示自然的奥秘, 获取自然的真知。
人文科学 humanities
以人类作为主要研究对象,运用实地考 察、诠释和启示等方法,认识人、人性 和人生的意义,提升人的精神素质和思 想境界。
社会科学 Social Science
以社会领域为主要研究对象,运用调查、 统计和归纳等方法,把握社会规律,解 决社会问题,促进社会进步。
如何界定自然科学?物理学,化学,…… 计算科学?数学?
8
科学与计算科学
美国能源部报告认为:高端计算目前已经与理论研
究、实验手段一起,成为获得科学发现的三大支柱。因
此,理论科学、实验科学和计算科学是推动人类文明进
步和科技发展的重要途径。
9
科学与计算科学
二、计算科学与计算学科 计算科学/Computational Science:一种与
第一讲
教学目标
➢ 了解科学、计算、计算科学与计算学科、思维与计 算思维的基本概念
➢ 了解计算学科与其它学科之间的关系 ➢ 了解计算思维的作用,学会计算思维的基本方法,
掌握其基本技能 ➢ 了解运用计算机求解问题的基本思路和一般过程
知识要点
➢计算、可计算性以及计算学科的概念 ➢思维、计算思维进行问题求解的一般过程 ➢计算思维在人类社会的经济、科技等各领域
4
科学与计算科学

计算思维概述 ppt课件

计算思维概述  ppt课件
④ ICER Final Report of the Northwest Regional Meeting • 内容及建议
以上四个文件分析了美国计算教育出现的问题,报告建议在美国国家科学基金的资助下全面 改革美国的计算教育。以下两个问题和一个建议值得我们注意: ① 大学第一年计算机课程的构建问题; ② 多学科的融合问题; ③ 报告建议加强美国中小学学生抽象思维与写作能力的训练,目的,使学生平稳过渡到
(3)“讨论”出服务排队的核心方法:
–先来先服务(FCFS) –短任务优先(SJF) –最短剩余时间优先(SRTF) –优先级调度(HPF) –时间片轮转(RR)
例4 装箱问题模拟
问题:用尽可能少的箱子装下若干物体
#include <stdio.h> main() {
int i, j, Cur, N, Max=0; static int S[1001]; scanf("%d", &N); for(i=1; i<=N; i++) {
科学的美不逊于艺术的美。
1.1 科学与科学思维
1. 科学的概念
词源
“science”来源于拉丁文”scientia”, 意为“知识 与学问”。
达尔文
“科学就是整理事实,从中发现规律,作出结 论。”
科学是运用范畴、定理和定律等思维形式反映现 实世界中各种现象的本质和运动规律的知识体系。
1.1 科学与科学思维
2. 科学的分类 广义科学
自然科学:以自然界为主要研究对象,运用实证、理性和 臻美等方法,解释自然的奥秘。
人文科学:以人类为主要研究对象,,运用实地考察、诠 释和启示等方法,认识人、人性和人生的意义,提升人的精 神素质和思想境界。

第六讲 计算思维之问题求解思想—4

第六讲 计算思维之问题求解思想—4



递推算法—案例
算法案例
– 递推算法通常用于计算性的问题求解,算法简单易懂,执行算法的时间
与空间复杂度基本固定在O(N),执行效率普遍可以被接受。比较典
型的运用递推算法求解的问题是斐波那契数列(Faibonacci)问题。
– 【斐波那契数列问题】1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...……,求此


递归算法—定义
算法定义
– 递归算法(Recursion Algorithm)是把问题转化为规模缩小了的同类问
题的子问题。然后通过递归调用函数(或过程)来表示问题的解。一
个程序过程(或函数)直接或间接调用自己本身,这种过程(或函数)
称为递归过程(或函数)。
– 递归调用分两种情况:直接递归和间接递归。直接递归指即在过程中
解决问题。策略ቤተ መጻሕፍቲ ባይዱ面向问题的,算法是面向实现的。
• 问题空间(Problem Space)是问题解决者对一个问题
所达到的全部认识状态,它是由问题解决者利用问题所
包含的信息和已贮存的信息主动地构成的。

算法策略概述
• 问题空间会随着问题解决的迚程而逐渐得到丰富和扩展。而且,
在解决某一特定问题时,不同个体的问题空间可能是有差别的。
• 例如一个已知是四位并且全部由数字组成的密码,其可能共有10000种组合,因此最多 尝试10000次就能找到正确的密码。理论上利用这种方法可以破解任何一种密码,问题 只在于如何缩短试误时间。因此有些人运用计算机来增加效率,有些人辅以字典来缩
小密码组合的范围。
– 在一些领域,为了提高密码的破译效率而专门为其制造的超级计算机也不在 少数,例如IBM公司为美国军方制造的“飓风”就是很有代表性的一个特例。

第六讲 计算思维之问题求解思想—5

第六讲 计算思维之问题求解思想—5
某女相亲

• 算法特点
贪心算法—特点
– 有一个以最优方式来解决的问题。为了构造问题的解决方案,有一个候选的对象的集合。 – 随着算法的进行,将积累起其它两个集合:一个包含已经被考虑过并被选出的候选对象,
另一个包含已经被考虑过但被丢弃的候选对象。
– 有一个函数来检查一个候选对象的集合是否提供了问题的解答。该函数不考虑此时的解决 方法是否最优。 – 还有一个函数检查是否一个候选对象的集合是可行的,也即是否可能往该集合上添加更多 的候选对象以获得一个解。和上一个函数一样,此时不考虑解决方法的最优性。 – 选择函数可以指出哪一个剩余的候选对象最有希望构成问题的解。 – 最后,目标函数给出解的值。

• 算法案例
回溯算法—案例
– 【迷宫问题】在迷宫中求从入口到出口的一条简单路径。
• 计算机解迷宫时,通常用的是“试探和回溯”的方法,即从
入口出发,顺某一方向向前探索,若能走通,则继续往前走;
否则沿原路退回,换一个方向再继续探索,直至所有可能的 通路都探索到为止。如果所有可能的通路都试探过,还是不 能走到终点,那就说明该迷宫不存在从起点到终点的通道。



背包问题
案例描述
背包的容量总重量为C,现有不同价值、 不同重量的物品N件,问题要求从这N 件物品中选取一部分物品放入背包的 选择方案:使得选中物品的总重量不
超过指定的限制重量C,但选中物品的
价值之和要最大。



背包问题
案例分析与实现
(请教师与学生在课程具体探讨和交流)

主题五 几个经典案例的算法实现

• • • • • • •
主题四 算法策略大搜罗
枚举算法 递推算法 递归算法 迭代算法 分治算法 贪心算法 回溯算法

计算思维与问题求解

计算思维与问题求解



累加累乘(∑n 以及n!、mn,多项式求和问题) 拆数(数字重组,字符串重组,水仙花数;完数;同构数;回文数等) 拆字符串(字符串重组,统计字符种类个数) 进制转换问题(210,28,216,810,816,1610) 递推迭代算法(兔子繁殖问题:Fibonacci数列) 穷举算法(百钱买百鸡;抓钱币游戏等) 整除求余(素数判断问题、分解因子问题) 辗转相除法(求两个整数的最大公约数和最小公倍数) 最大数最小数问题(求N个数中的最大数和最小数) 值的比较交换问题 数组问题(冒泡排序算法、选择排序算法、顺序查找法) 递归算法
问题求解算法归纳

算法归纳整合


求两个数中的最大数 求三个数中的最大数 求N个数中的最大数 交换两个数(排序) 交换三个数(排序) 交换N个数(排序)
Copyright © 2013 College of Computer(HDU)
问题求解算法归纳

数学算法



Copyright © 2013 College of Computer(HDU)
问题求解算法——描述方法

伪代码

用一些介于自然语言与高级语言之间的符号语言表达算法,依次 用人们所熟悉的并简洁的方式表示出来。
确定时间 IF 九点以前 THEN do 私人事务; ELSEIF 9点到18点 THEN 工作; ELSE 下班; END IF



c=c+1(称其为计数器) s=s+x(称其为累加器) p=p*x(称其为累积器) x=x/n(称其为累除器)、 t=-t(称其为正负号变换器) t=a,a=b,b=t(a,b变量值交换) f=1,f=0(称其为标记器) p=I(称其为跟踪器)

计算思维导论教材课件

计算思维导论教材课件
2/30
计算思维 基础知识
1.1 科学与计算科学
爱因斯坦:设法将人们杂乱无章的 感觉经验加以整理,使之符合逻辑 一致的思想系统,就叫科学。
科学作为一种存在的事物和 完整的事物,是人类认知的 事物中最客观的。但科学在 形成过程中,作为追求的目 的,却如同人类的其他认知 一样,是主观的也是受心理 制约的。
若都保持沉默(“合作”),则一同入狱1年; 若是互相检举(互相“背叛”),则一同入狱5年
若你认罪并检举对方(“背叛”对方),他保持沉默,他入人 狱10年,你可以获释(反之亦然)
结果两人都选择了招供(最希望的结果)。
计算思维 基础知识
孤立地看,这是最符合个体利益的“理性”选择。以A为例: 若B招供,A自己招供获刑5年,不招供获刑10年;若B不招供, 自己招供可以免刑,不招供获刑1年。 两种情况下,选择招供都更有利,事实上却比两人都拒不招供 的结果糟。 由囚徒困境可知,公共生活中,如果每个人都从眼前利益、个 人利益出发,结果会对整体的利益(间接对个人的利益)造成 伤害。
计算学科的基本问题:什么能被(有效地)自动进行。
10/30
计算思维 基础知识
1.1 科学与计算科学
计算学科是在数学和电子科学基础上发展起 来的一门新兴学科,它既是一门理论性很强的学 科,又是一门实践性很强的学科。
11/30
计算思维 基础知识
1.1 科学与计算科学
四、计算机科学与计算机学科
计算机科学/Computer Science:研究计算机及其周围 各种现象和规律的科学。 分类:理论计算机科学、应用计算机科学。 计算机学科/Computer Discipline:研究计算机的设计 与制造和利用计算机进行信息获取、表示、储存、处 理、控制等的理论、原则、方法和技术的学科。 计算机科学侧重研究现象与揭示规律,计算机技术则 侧重研制计算机及使用计算机进行信息处理的方法和 技术手段。

计算思维与思维导图ppt课件

计算思维与思维导图ppt课件
10
• 抽象和分解 来迎接庞杂的任务或者设 计巨大复杂的系统。它是关注的分离( SOC方法)。它是选择合适的方式去陈述 一个问题,或者是选择合适的方式对一 个问题的相关方面建模使其易于处理。 它是利用不变量简明扼要且表述性地刻 画系统的行为。它使我们在不必理解每 一个细节的情况下就能够安全地使用、 调整和影响一个大型复杂系统的信息。 它就是为预期的未来应用而进行的预取 和缓存。
15
理论体系
• 脑科学 大量实验研究和临床证据表明,人的大脑分左右
两个半球,思维导图运用了学生的左右两边大脑一起 参与学习和记忆。一般而言,左脑偏重于逻辑思维,右 脑偏重于形象思维,形象记忆更轻松、更容易被人所接 受。
• 认知心理学 结构性知识也称理性知识,指某一领域内各概念如
何相互关联的知识。结构性知识将陈述性知识整合成 有用的知识结构,描述了个体对不同内容领域概念的组 织(知识结构)。结构性知识有助于促进先前知识的运 用。
• 计算思维不仅影响着美国,也影响着英国的教 育,在英国的爱丁堡大学,人们在一连串的研 讨会上探索与计算思维有关的主题。每次研讨 会,都有不少专家讨论计算思维对不同学科的 影响。研讨会上所涉及的学科已延伸到哲学、 物理、生物、医学、建筑、教育等各个不同的 领域。
• 国内有关计算思维的研究 上世纪80年代,钱学森先生在总结前人的
19
应用方向
• 思维导图可以用于工作、学习和生活中的任何 一个领域里。
• 1、作为个人:计划,项目管理,沟通,组织 ,分析解决问题等;
• 2、作为学习者:记忆,笔记,写报告,写论 文,做演讲,考试,思考,集中注意力等;
• 3、作为职业人士:计划,沟通,项目管理, 组织,会议,培训,谈判,面试,评估,掀起 头脑风暴等。

第六讲 计算思维之问题求解思想—2

第六讲 计算思维之问题求解思想—2


主题二 相关知识的认识与了解
• 数学建模 • 数据结构 • 程序设计

程序设计
经历分析抽象出数学模型、选择合适的数据 结构以及整理归纳出解题算法等一系列阶段 过程,但最终都要将算法转换成计算机可计
• 在运用计算思维理念求解问题时,虽然需要
算执行的计算机程序,经过程序的编辑和运
行并迚行测试、调整直至问题得到最终解答。
来描述的关系或规律,然后把这个实
• 我们对具体问题迚行分析、抽象、归
际问题化成一个数学问题,这就称为
数学模型,而建立数学模型的整个过
程就称为数学建模。

• 数学模型的定义
数学建模
– 数学模型(Mathematical Model)是一种模拟,是用数学符
号、数学式子、程序、图形等对实际问题本质属性的抽象而
机中的存储位置无关。
• 逻辑结构有以下基本类型:集合结构、线性结构、非线性结构 (树状结构和图形结构)。

• 数据结构的定义
– 数据的物理结构
数据结构—定义
– 数据结构主要包括三个组成成分:数据的逻辑结构,数据的物理(存 储)结构和数据的运算结构。 • 数据的物理(存储)结构指数据的逻辑结构在计算机存储空间的 存放形式,是数据在计算机中的表示(又称映像)。它所研究的

• 计算机程序
程序设计—计算机程序
– 计算机程序(Computer Program)就是按照实际解决问题的算法步骤而事先 编制好的、具有特殊功能的指令序列。序列由一串CPU能够识别并执行的 基本指令组成,每一条指令规定了计算机应该进行什么操作(如加、减、 乘、除、判断等)及操作需要的有关数据。
• 计算机程序主要涉及两部分内容,即数据的描述和数据的处理。

计算思维解决问题的基本步骤

计算思维解决问题的基本步骤

计算思维解决问题的基本步骤嘿,咱今儿就来说说这计算思维解决问题的基本步骤哈!你想啊,生活里那一堆事儿,不就跟打怪升级似的嘛,得一步步来,才能把难题给干掉。

计算思维呢,就像是你手里的秘密武器。

那第一步,咱得先搞清楚问题到底是啥。

这就好比你要去个地方,得先知道目的地在哪儿呀,不然瞎转悠啥呢。

就像你找钥匙,得先确定是在家里丢的还是在外面丢的,这很关键呐!然后呢,得把这个大问题给拆分成一个个小问题。

这就像吃蛋糕,一口吃不下整个,那就切成小块慢慢吃呗。

比如说你要策划一场活动,那不得把场地、人员、流程啥的都分开考虑呀。

接着呀,咱得想办法表示这些问题。

就跟画画似的,把脑子里的东西给画出来,让它变得清楚明白。

比如说用个图表啦,画个流程图啦,这样咱就能更直观地看到问题的结构。

再之后呢,就是要找出解决问题的办法啦。

这可不能瞎碰运气,得有策略。

就好像走迷宫,得找对路才行。

可以想想以前类似的问题是咋解决的,或者参考别人的经验。

下面这步也很重要哦,就是得评估这些办法。

看看哪个好用,哪个不太靠谱。

这就像挑衣服,得看看合不合身,好不好看呐。

要是办法不行,咱就得重新想,可不能一条道走到黑。

接下来呢,就是实施啦!光想不做可不行,得行动起来。

就像跑步,得迈腿跑起来才知道能不能到终点。

最后啊,还得看看效果咋样。

问题解决了没呀,要是没解决,咱再回头看看是哪步出了问题,重新再来一遍。

你看,这计算思维解决问题不就跟咱走路一样嘛,一步一步的,走稳了才能走到目的地。

咱平时遇到问题的时候,也可以试着用这种方法呀,说不定就能轻松搞定那些头疼的事儿呢!别小瞧了这一步步,积累起来可就是大本事啦!咱得把这计算思维用起来,让生活变得更有条理,更轻松愉快。

就这么着吧,大家都试试,肯定有收获!。

计算思维与算法

计算思维与算法

要素
操作
控制结构
顺序结构
选择结构
循环结构
2020/8/9
12
2 算法的概念、特性、表示等
1 正确性 2 可读性
算法也是让人来阅读的,一个算法应当思路 清晰、层次分明、易读易懂。
可读性好的算法有助于调试程序、发现错误 和修改错误,以及有助于软件功能的维护和扩展。
例如,两个变量a和b的值互换, 算法t=a;a=b;b=t;可读性好,容易理解; 算法a=a+b;b=a-b;a=a-b;可读性差,不易理解。
算法的复杂性分析
渐进时间复杂性
大O记号
设函数T(n)和g(n)是定义在非负整数集合 上的正函数,如果存在一个自然数n0和正 常数c,使得当n≥n0时,有T(n)≤cg(n), 则记为T(n)=O(g(n)),称为大O记号,称 O(g(n))是T(n)的上界。
3 健壮性
健壮性是指算法对于非法的输入(即规范要 求以外的输入)的处理能力。
例如输入百分制成绩时,当输入的成绩<0或 >100时,能给出“输入错误!”的提示,并提示 重新输入或中止执行。
4 高效率和低存储量
人们总是希望一个算法既要执行时间 短,又要存储空间小。
有时候这是矛盾的。
2020/8/9
13
2 算法的概念、特性、表示等
5
1 问题求解的计算思维过程
什么是数学模型?
数学模型就是为了某种目的,用字母、数字及其他数学符 号建立起来的等式或不等式以及图形、图表、图像、框图 等描述客观事物特征及其内在联系的结构。
等式如: 一元二次方程的求根公式
图形如:欧拉对七桥问题 抽象出的图形
2020/8/96源自2 算法的概念、特性、表示等

[数学][高中数学解题思维与思想](精美word)(1)

[数学][高中数学解题思维与思想](精美word)(1)

《高中数学解题思维与思想》导读数学家G . 波利亚在《怎样解题》中说过:数学教学的目的在于培养学生的思维能力,培养良好思维品质的途径,是进展有效的训练,本策略结合数学教学的实际情况,从以下四个方面进展讲解:一、数学思维的变通性根据题设的相关知识,提出灵活设想和解题方案二、数学思维的反思性提出独特见解,检查思维过程,不盲从、不轻信。

三、数学思维的严密性考察问题严格、准确,运算和推理准确无误。

四、数学思维的开拓性对一个问题从多方面考虑、对一个对象从多种角度观察、对一个题目运用多种不同的解法。

什么〞转变,从而培养他们的思维能力。

《思维与思想》的即时性、针对性、实用性,已在教学实践中得到了全面验证。

一、高中数学解题思维策略第一讲数学思维的变通性一、概念数学问题千变万化,要想既快又准的解题,总用一套固定的方案是行不通的,必须具有思维的变通性——善于根据题设的相关知识,提出灵活的设想和解题方案。

根据数学思维变通性的主要表达,本讲将着重进展以下几个方面的训练:〔1〕善于观察心理学告诉我们:感觉和知觉是认识事物的最初级形式,而观察那么是知觉的高级状态,是一种有目的、有计划、比拟持久的知觉。

观察是认识事物最根本的途径,它是了解问题、发现问题和解决问题的前提。

任何一道数学题,都包含一定的数学条件和关系。

要想解决它,就必须依据题目的具体特征,对题目进展深入的、细致的、透彻的观察,然后认真思考,透过外表现象看其本质,这样才能确定解题思路,找到解题方法。

例如,求和)1(1431321211+++⋅+⋅+⋅n n . 这些分数相加,通分很困难,但每项都是两相邻自然数的积的倒数,且111)1(1+-=+n n n n ,因此,原式等于1111113121211+-=+-++-+-n n n 问题很快就解决了。

〔2〕善于联想联想是问题转化的桥梁。

稍具难度的问题和根底知识的联系,都是不明显的、间接的、复杂的。

因此,解题的方法怎样、速度如何,取决于能否由观察到的特征,灵活运用有关知识,做出相应的联想,将问题打开缺口,不断深入。

专题五 计算思维与问题求解

专题五 计算思维与问题求解
– 是根本而不是刻板的技能。
• 根本技能是每一个人为了在现代社会中发挥职能所必 须掌握的。刻板技能意味着机械的重复;
计算思维----特征
– 是人而不是计算机的思维方式。
• 计算思维是人类求解问题的一条途径,但决非要使人 类像计算机那样地思考。计算机枯燥且沉闷,人类聪 颖且富有想象力。是人类赋予计算机激情。配置了计 算设备,我们就能用自己的智慧去解决那些在计算机 时代之前不敢尝试的问题,实现“只有想不到,没有 做不到”的境界;
AB C
AB C
AB C
AB C
AB C
AB C
分析过程
第一步:
A
B
C
T
交换:
分析过程
第二步:
A
B
交换:
C
T
分析过程
第三步: A
交换:
B
C
T
最终结果
第三步: A
交换:
B
C
算法表示
开始
分别从键盘输入数值A,B,C
N
A>B?
Y
交换A,B的值,T=A,A=B,B=T
N
A>C?
Y
交换A,C的值,T=A,A=C,C=T
32
计算思维----能力培养
• 不插电的计算思维——视频范例(交朋友 算法)
33
计算思维----能力培养
• 不插电的计算思维——视频范例(交朋友 算法)
计算思维----特征
– 是思想而不是人造物。
• 不仅仅是我们生产的软件硬件等人造物将以物理形式 到处呈现,并时时刻刻触及我们的生活,更重要的是 还将包含我们用以接近和求解问题、管理日常生活、 与他人交流和互动的计算概念与思想;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
– 数学模型是指经过分析抽象的建模过程将具体问题转化为形式 化、符号化和公式化的数学语言描述;
– 数据结构是指计算机对数据进行存储、组织和操作运算的方式。

计算思维问题求解综述
• 那么,运用计算思维理念去求解问题和我们日常求解问 题的过程有什么不同?运用计算思维进行问题求解过程 都涉及到哪些环节和因素?

问题求解案例—案例引伸思考
• 那么,能不能求助于计算机来帮忙计算一下呢!? • 能与不能,这需要进一步的分析和评估,同时也需要考虑
怎样才能把这个问题转换成计算机可计算的描述。 • 在不了解运用计算思维进行问题求解框架的情况下,确实
不知道从何下手!

主题一 探讨问题求解过程
• 计算思维问题求解综述 • 问题求解案例 • 问题求解框架

问题求解案例—案例总结
• N个圆盘的移动操作过程:
– N个圆盘就相当于一个大圆盘上面叠放了一组圆盘(N-1个圆盘); – N-1个圆盘就相当于一个大圆盘上面叠放了一组圆盘(N-2个圆盘); – …… – 依此类推,直到剩下3个圆盘就相当于一个大圆盘上面叠放了一组圆盘
(2个圆盘); – 这样就回归到处理2个圆盘的问题,最后就是1个圆盘的问题。 – 整个移动过程都在重复着这样的操作过程。
– 所以4个圆盘的移动步骤次数为:7+1+7=15步!

问题求解案例—案例分析
• 如果是N个圆盘的情况,就相当是一个大圆盘上面叠放了一组圆盘(N-1个 圆盘),只要把这一组圆盘先移动到中转柱子B上,这样最大的圆盘就可 以移动到目标柱子上C了,然后,再把那中转柱子B上的一组圆盘移动到目 标柱子C上。
– 计算思维=数学建模? – 计算思维=算法? – 计算思维=数据结构? – 计算思维=编程序?

计算思维问题求解综述
• 事实上,单一的划等号都不能全面精确地定位计算机思 维。如果一定要用一个公式表述计算思维,那么可以说:
– 计算思维≈人的思维+数学建模+数据结构+计算算法+程序设计!
人的思维 数学建模

问题求解框架
• 虽然我们在这里并不打算牵扯编程,但是操作步骤的表述 需要了解这些结构和控制的可行性,以确定每种处理方法 都是在计算机的能力和极限范围之内的。最后再将所有问 题求解的操作步骤用规范的算法表示形式描述出来。
数据结构
计算算法 程序设计

计算思维问题求解综述
• 我们关注的是从一个在看似平常或看 似纷繁的事物或事件中能够洞析和发 现问题,并提出问题到抽象归纳出解 决问题的算法直至最终解决问题的整 个思想过程!而这个过程正是计算思 维的问题求解思想的全过程。

主题一 探讨问题求解过程
• 计算思维问题求解综述 • 问题求解案例 • 问题求解框架
• 这样就可以写出计算N个圆盘的移动次数H(N)的计算公式。一组圆盘是N-1 个,需要H(N-1)步移动到中转柱子B上,最大的圆盘需要1步移动到目标柱 子C上,一组圆盘还需要从中转柱子B上再移动到目标柱子C上,这样一组 N-1个圆盘又需要H(N-1)步。
• 所以N个圆盘的移动步骤次数为:H(N)=H(N-1)+1+H(N-1)=2*H(N-1)+1

问题求解案例
• 首先,让我们从一个具体的问题出发
– 了解和认识运用计算思维理念去求解问题相比我们常规下求解 问题的思考过程有什么不同?
– 以及运用计算思维进行问题求解过程都涉及到哪些环节和因素?

问题求解案例—案例描述
• 有三根相邻的柱子,假设标号分别为A、B、C, 其中A柱子从下到上按金字塔状依次叠放了N 个不同大小的圆盘,现要把A柱子上的所有圆 盘一次一个地移动到C柱子上,移动的过程中 可以借助B柱子做中转,并且每根柱子上的圆 盘必须始终保持上小下大的叠放顺序。

问题求解框架
• 通过计算机解决一个具体问题时,大致需要经过下列几个步骤:
– 首先要从具体问题中抽象出一个适当的数学模型, – 然后选择并确定合适的数据结构并设计一个解此数学模型的算法, – 最后编出程序、进行测试、调整直至问题得到最终解答。

问题求解框架
观察问题
观察问题
人类之问题求解过程
分析问题
归纳抽象
计算思维之问题求解过程 结合数学的形式化表示
结合已有知识经验 做各种假设性判断推理
收集信息
数学建模
经验知识
数据结构
考虑计算机的限制和可行性 抽象出可计算性算法描述
在假设和尝试中总结方法
推理判断
算法描述
最后经过计算验证实现
找出方法
最后提交计算机验证实现
程序设计
实现解决
实现解决

问题求解框架
• 寻求数学模型的实质是分析问题,从中抽象提取操作的对象,并找出这 些操作对象之间蕴含的关系,然后用数学的语言加以描述。

问题求解案例—案例分析
• 按照汉诺塔的移动约束规则:
– 当4个圆盘的时候,就相当是一个大圆盘上面叠放了一组圆盘(三个圆盘),只要把这 一组圆盘先挪到中转柱子B上,这样最大的圆盘就可以移动到目标柱子C上了,然后, 再把那中转柱子B上的一组圆盘移动到目标柱子C上,整个移动过程就结束了。
– 一组圆盘是3个,需要7步移动到中转柱子B上,最大的圆盘需要1步移动到目标柱子C上, 一组圆盘还需要从中转柱子B上再移动到目标柱子C上,这样一组3个圆盘又需要7步。
• 人与计算机的对话沟通方式就是通过程序控制指令。

计算思维问题求解综述
• 可是,这程序指令应该怎么写才能让计算机“心领神会” 并“游刃有余”地完成预期的计算呢?这其中涉及到程 序指令的语法和算法。
– 简单地说,语法是具体书写程序指令的格式约束规则;
– 算法是解决问题的具体方法步骤,而算法又是建构在问题求解 的数学模型和数据结构等诸多知识之上。

问题求解案例—案例引伸思考
• 可是,现在的问题是,虽然已经掌握了移动的规律,但是每只圆盘的 移动轨迹到底应该怎么标记出来呢?难道必须移动一个圆盘,记录一 次移动轨迹?虽然移动过程简单,但是当圆盘数量递增时,标记的数 量确是巨大的。
• 就拿N=64来说,圆盘移动次数是:264-1=18,446,744,073,709,551,616, 这真是个天文数字呀!显然,这时还依然固执地采用手工标记,那绝 对就是一项不可能完成的任务了!
– 请问至少需要多少次移动步骤才能够全部完成? – 并描述每一次圆盘的移动轨迹。

问题求解案例—案例分析
• 首先来考虑一下N个圆盘由一根柱子移动 到另一根柱子上并重新摞好需要移动多少 次吧。然后再考虑每只圆盘的移动轨迹。

问题求解案例—案例分析
• 按照汉诺塔的移动约束规则:
– 当只有1个圆盘的时候,当然是移动1次; – 2个圆盘的时候是移动3次; – 3个圆盘的时候就用了7次。

问题求解案例—案例总结
• 现在我们得出:1个圆盘的时候用了1次,2个圆盘的时候用了3次,3个圆 盘的时候用了7次,4个圆盘的时候用了15次。
• 只要把N(N>0)的值 H(1)=1=21-1 – H(2)=2*H(1)+1=3=22-1 – H(3)=2*H(2)+1=7=23-1 – H(4)=2*H(3)+1=15=24-1 – H(5)=2*H(4)+1=31=25-1 –⁞ – H(N)=2*H(N-1)+1=2N-1
第六讲 计算思维之问题求解思想
• 主题一 探讨问题求解过程 • 主题二 相关知识的认识与了解 • 主题三 关于算法的理解 • 主题四 算法策略大搜罗 • 主题五 几个经典案例的算法实现

主题一 探讨问题求解过程
• 计算思维问题求解综述 • 问题求解案例 • 问题求解框架

计算思维问题求解综述
• 计算机算法与数据结构密切相关,算法无不依附于具体的数据结构,数 据结构直接关系到算法的选择和效率。
• 运算是由计算机来完成,这就要设计相应的插入、删除和修改的算法。 也就是说,数据结构还需要给出每种结构类型所定义的各种运算的算法。

问题求解框架
• 如果将汉诺塔问题转换为用计算机可处理的方法描述首先 必须建立数学模型,就是将操作过程符号化和公式化;可 是符号和公式的表示必须符合计算机的数据结构规范;另 外,操作的过程会涉及到选择判断和循环重复,则又会涉 及到了计算机的程序设计控制结构等。
• 随着社会的发展与科技的进步,出于对问题计算时间和 复杂度等多方面因素的考量,现实世界中的很多问题需 要借助计算机帮我们计算!
• 可是,我们知道,现代计算机的工作原理是存储程序和 程序控制,也就是说,现代计算机只能对可计算性问题 进行计算,但是具体怎么计算,计算机却不知道,这需 要人来告诉计算机。
相关文档
最新文档