(共25张PPT)
计算机解决问题的基本过程
选修一 算法与程序设计
计算思维
计算
算法思维
算法
1
2
3
算法的描述
体验编程
计算不再只和计算机有关,它决定我们的生存。
改变了什么?
计算
数学建模
计算改变科学研究
计算经济学
计算思想在诺贝尔经济学奖理论中占70%以上的比例
表 诺贝尔经济学奖理论与计算思想影响
年份 诺贝尔经济学获得者 诺贝尔经济学奖理论 计算思想的影响
1970 萨缪尔森 静态和动态经济理论以及经济科学分析 √
1975 康托罗维奇 库普曼斯 资源最优分配理论模型 √
1980 克莱因 经济波动和经济政策中的计量经济模型和应用
1981 托宾 金融市场分析及其支出决策、就业、生产和价格总体 √
1994 豪尔绍尼
纳什 泽尔腾 均衡分析中的非合作博弈理论模型 √
2013 汉森罗伯特
尤金 拉尔斯 资产价格的实证分析 √
计算社会学
从你所遗留的数字印记里,将可以推断你的习惯,你的心智模式,你下一步可能干什么,你的好朋友会是谁
智慧城市——IBM智慧城市运行解决方案
通过预警分析系统,里士满市的犯罪率一年内就猛降了
在IBM的帮助下,迈阿密 - 德戴县公立学校在教学成绩方面都取得显著的提高和进步。
40%
它正在改变科研、工作、生活、学习等
它在改变世界!
计算
计算的本质
什么是计算呢?
例1:算数计算 1+2+3=6
例2:代数演算 a2+2ab+b2=(a+b)2
计算的本质
1+2+3
→(1+2)+3
→ 3+3
结合律
加法规则,替换规则
加法规则
计算是基于规则的符号串变换
→ 6
什么是计算思维呢?
周以真
微软全球副总裁
计算机解决问题的过程
游戏——猜价格
这是一款价值在2000元以内的运动手环,您能在11次内准确猜出它的价格吗?
计算机解决问题的基本过程
分析问题
设计算法
编写程序
调试程序
第一步
第二步
第三步
第四步
算法思维
已知某商品价格p是在区间[pmin,pmax]中的整数,参与者可以给出n次报价,对每次报价主持人会给出高了、低了或者正确的提示。如果没有任何背景知识,怎样才能在给定次数内猜出价格?
已知整数p∈[pmin,pmax] ,在给定次数m内,如何生成整数序列p1,p2p3, ···,pn,使得pn=p并且n≤m,其中m是允许猜测的次数。
[0,2000]
P1=1000,高了,[0,1000];
P2=500,低了,[500,1000];
P3=750,低了,[750,1000];
P4=875,低了,[875,1000];
······
初始:输入pmin、Pmax、m的值;
步骤2:pn=(pmin+pmax)/2;
步骤3:如果n>m,则
输出失败,结束;
步骤4:如果pn等于p,则
输出成功,结束;
步骤5:如果pn>p,则
令pmax=pn,否则
令pmin=pn;
步骤6:n=n+1;
步骤7:转到步骤2;
步骤1:令n=1;
算法:求解某一问题所使用的一系列规则序列
算法思维
算法思维
Private Sub Form_Load()
Const p As Integer=996
Dim pmin As Integer
Dim pmax As Integer
Dim m As Integer
Dim pn As Integer
Dim n As Integer
pmin = InputBox("请输入最小价格")
pmax = InputBox("请输入最大价格")
m = InputBox("请输入可猜测次数")
n = 1
Do Until n >m Or pn = p
pn = (pmin + pmax) / 2
If pn > p Then
pmax = pn
Else
pmin = pn
End If
n = n + 1
Loop
Show
If n >m Then
Print "失败";
Else
Print "成功,共猜测了" & n; "次,
价格为" & pn; "元";
End If
End Sub
Do until 条件判断→什么时候不循环了
需要执行多次的程序语句
Loop
if 条件判断 then
满足条件执行的程序语句
Else
不满足条件执行的语句
End if →表示判断语句结束
算法的描述
自然语言描述
流程图描述
算法的描述
伪代码描述
Begin
input pmin ,pmax ,m
n=1
Do until n>m or pn=p
pn=(pmin+pmax)/2
if pn>p
then pmax=pn
else if pn<p
then pmin=pn
n=n+1
Loop
if n>m
then Print "失败,结束"
else print "成功,结束"
end
算法的描述
①易理解
①易引起歧义;
②难清晰表现算法结构;
③不易翻译成计算机程序设计语言
①直观、形象;
②结构清晰
①修改稍麻烦
①书写方便,容易修改;
②容易转化为程序语言代码
①不够直观,一旦出现逻辑错误也不便排查;
算法描述方式 优势 不足
自然语言
流程图
伪代码
算法的描述
自然语言描述 流程图描述 伪代码描述
输入pmin、Pmax、m的值 input pmin ,pmax ,m
令n=1 n=1
pn=(pmin+pmax)/2 pn=(pmin+pmax)/2
如果n>m,则
输出失败,结束 If n>m then
Print "失败,结束"
如果pn等于p,则
输出成功,结束 If pn=p then
print "成功,结束"
如果pn>p,则
令pmax=pn,否则
令pmin=pn if pn>p
then pmax=pn
else if pn<p
then pmin=pn
n=n+1 n=n+1
转到步骤2 Do until loop
学习建议—脚踏实地
2.如果自学,可以先选择一门容易上手的程序语言、编程软件,eg
1.建立意识,带着计算机解决问题的思维模式去解决一些生活中可以解决的问题
Scratch
App inventor
3.可以从编写先小游戏开始,eg
大数据时代——云计算
有微软高管表示:云计算在未来5年的市场份额将会占到2千多亿美元
大数据的核心是云计算
大数据的将是算法分析师崛起的时代