模拟与设计
模拟与设计 用计算机解决本专业或本领域的问题 如:物理、化学、生物现象等 考虑: 如何表示问题一抽象、数据结构 如何用计算机算法解决实际问题
模拟与设计 举例 ■大学生数学建模竞赛 ■人狼羊问题 量杯问题 本章与前比,编程解决更实质性的问题
模拟 我们已经掌握的工具足以让我们编程解 决有意思的问题 “有意思”是指:如果不设计计算机算法 实现,该问题是很难或不可能解决的 4
4
模拟 模拟:用计算机为实际问题建模,从而 提供非如此不能获得的信息 - 这是解决实际问题的强大技术,每天都在 应用: ■天气预报 ■设计飞机 制作电影特效 5
5
一个模拟问题:Racquetball 问题:为什么球技只比对手略差,却输掉 绝大多数的比赛? 一种可能是心理上的 你头脑中自以为比对手只是略差,实际情况 是你差很多 另一种可能 这是壁球运动本身的特性,能力上的细微 差距却导致压倒性的胜负 6
6
一个模拟问题:Racquetball 解决方法: 编程来模拟壁球,通过模拟不同水平球员之 间的数千场比赛来发现原因 7
7
美式壁球基本知识 球,球拍,场地 ■一人发球开始比赛 然后两人交替击球(称为一个raly) 当一人未能击出合法球,则输掉本ral川y; -发球方输则交换发球权; -发球方赢则得1分. 先得15分者赢1局 8
8
程序规格 球技水平 一用球员作为发球方的获胜概率来模拟 不能精确模拟,而只能大概模拟,主要受 表达能力的限制 程序规格 输入:两个球员的水平,模拟比赛局数 输出:两球员各自的获胜局数及比例 9
9
随机数 模拟的是不确定性事件:ral山y的输赢是随机 的 -这类模拟也称为Monte Carlo算法 其他实例:扔硬币,掷骰子 10
10