计 算 机与 常 用 算 法.ppt .ppt

  1. 1、本文档共84页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计 算 机与 常 用 算 法.ppt

模拟法: 就是模拟某个过程,通过改变数学的各种参数,进而观察变更这些参数所引起过程状态的变化.一般题目给定或者隐含某一概率.设计者利用随机函数和取整函数设定某一范围的随机值,将符合概率的随机值作为参数.然后根据这一模拟的数学模型展开算法. 模拟策略的关键: 是如何按照概率的要求确定随机值的范围.这个随机值设计得好,模拟效果就好. 例一: 甲乙两人抓n个棋子,谁抓最后一个谁赢.每一次只能抓一个或两个,但不能为零个.甲方为计算机,对弈方为乙(由随机数替代).设计一个程序使计算机尽可能赢. 输入:棋子数n,先下手的方k(k=‘b’对方先下;k=‘a’,计算机先下). 输出:游戏过程.一行表示一步:现有棋子数,被抓走的棋子数.最后一行为赢方的名字. 这个问题的算法核心是:要置对方于死地,必须使余下的棋子是1+2=3的整数倍.因此,当甲方处在棋子数是3的倍数时要小心等待.一旦对方错一步,赶紧控制余下棋子数为3 的倍数.设: b—乙方抓走的棋子数.每一次轮到乙方抓时,则随机产生b(1+random(2)). a--- 甲方抓走的棋子数.轮到甲方抓时,若剩余的棋子数非3的整数倍,则应使抓掉后是3的整数倍.若剩余的棋子数为3的整数倍,则随机产生a(1+random(2)). 计算过程如下: 输入棋子总数n和先下手一方的名字k Randomize; While n0 do begin if k=‘b’ then begin x:=random(2);b:=1+x; if n-b=0 then begin 输出现有0枚棋子,乙方抓走n枚棋子; 输出乙方赢; break; end else begin n:=n-b; 输出现有n枚棋子,乙方抓走b枚棋子; K:=‘a’ End; Else begin a:=n mod 3; if a0 then {若剩余棋子数为3的整数倍,则调整每次抓的棋数} else x:=random(2);a:=1+x; if n-a=0 then begin 输出现有0枚棋子,甲方抓走n 枚棋子; 输出甲方赢; break; end Else begin n:=n-a; 输出现有n枚棋子,甲方抓走a枚棋子; K:=‘b’; End; End; End; 练习: 假设有一堆小石子,二人轮流去取,谁拿走最后一颗石子便输。先让甲规定石子总数N以及每次最多取多少颗数k(n=2*k+1),甲每次取a颗, (N,k,a均为随机数),乙怎样取赢的可能性最大?设甲为计算机产生的随机数,乙为由你编的计算机程序。 猜数游戏: 人和计算机做猜数游戏。人默想一个四位数,由计算机来猜。计算机将所猜的数显示到屏幕上,并问两个问题: (1)有几个数字猜对了?(2)猜对的数字中有几个位置也对? 人通过键盘来回答这两个问题。计算机一次又一次地猜,直到猜对为止。比如我们默想的一个数是5122,假定计算机第一次猜1166,然后问你: (1)有几个数字猜对了?1(2)猜对的数字中有几个位置也对?1 假定计算机第二次猜1287 (1)有几个数字猜对了?2(2)猜对的数字中有几个位置也对?0 假定计算机第三次猜5122 (1)有几个数字猜对了?4(2)猜对的数字中有几个位置也对?4 计算机显示最后猜中的数,并报告共猜了几次? 问题1:编程实现这样一个猜数的游戏程序。屏幕显示格式为: 第二行显示计算机所猜的四位数。 第三行提问猜对的数字个数,用“Number:” 第四行提问位置对的数字个数,用“Position:” 第五行显示当前已猜的步数,用“Step xx”. 注:其中末尾数字由键盘输入。最后给出结束信息,其他由编程者自定。 问题2 :仍是这样一个游戏,但要求计算机既是猜数者,又要模拟默想这个数的人(要猜的数由键盘输入)。屏幕显示格式为: 第一行显示人所默想的数,用“xxxx”. 第

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档