巧算24点计算机程序设计思路.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
巧算24点计算机程序设计思路.doc

“巧算24点”计算机程序设计思路 潜龙学校八年(3)班 薛临风 “巧算24点”是我们喜爱的扑克益智游戏,课余时间,只要一副扑克牌,或自制的一副卡片,就能与同学来一个“智力大比拼”,但这快乐之中,总有一个烦恼深深困扰着我,有时出了4张牌后,我们虽然绞尽脑汁,也没能算出,但又感觉这不是“无解”。所以我常常想,能否编写一个“巧算24点”的计算机程序,及时告诉我们答案呢?下面结合学到的数学知识及自学的Visual Basic语言,探索“巧算24点”的计算机程序设计思路问题。 一、基本思路 “巧算24点”的游戏规则如下:一副牌中抽去大小王及J、Q、K,剩下40张,任意抽取4张牌,用加、减、乘、除(可加括号)把牌面上的数算成24。也就是说利用4张牌,运用各种运算方式,最终得出24这个答案。现在不妨设任意抽出的4张牌的数分别为a、b、c、d。再用各个运算符号去套他们,如(a+b)×c-d,就可以得出一组计算公式,然后把所有的计算公式首先储存在计算机程序中,让计算机程序逐个套用这些计算公式,当计算结果等于24时,则显示结果,否则继续套用下一个公式。如此看来,要想让电脑的“人工智能”帮我们解24点,计算公式是最关键的一步了! 二、计算公式探索 要列出“巧算24点”的计算公式,显然不能瞎碰乱凑,只能采取分类讨论的方法。在探索计算公式过程中,发现有三种情况:(1)一些公式并没有实用价值,如a-b-c-d,因为a的最大值为10,即使b,c,d都取最小的1,则10-1-1-1=7,答案的最大值为7,所以类似这些公式都要舍去;(2)由于a、b、c、d与抽出的4张牌可以进行轮换,故如a+b+c-d与a+b-c+d本质上是一个公式,这些重复的公式也均要舍去;(3)一些公式之间可以互相转换,如a-(b-c-d))a+(b+c)÷d (13)a+b+c÷d 6、公式中只有“-”号和“×”号 (14)a×b×c-d (15)a×b-c-d (16)(a-b)×(c-d) (17)(a×b-c)×d (18)(a-b-c)×d (19)(a-b)×c×d (20)a×b-c×d (21)a×(b-c)-d 7、公式中只有“+”号和“-”号 (22)a+b+c-d 8、公式中只有“×”号和“÷”号 (23)a×b×c÷d (24)a×b÷c÷d 9、公式中只有“-”号和“÷”号 无实用公式 10、公式中只有“-”号、“+” 号和“×”号 (25)a×(b+c)-d (26)(a+b-c)×d (27)a×b+c–d (28)a×(b-c)+d (29)(a+b)×(c-d) 11、公式中只有“-”号、“+”号和“÷”号 无实用公式,a+b的最大值为20,而无论是减还是除,都会让20变小,所以没有公式。 12、公式中只有“×”号、“÷”号和“+”号 (30)(a+b)×c÷d (31) a×b÷c+d (32)(a÷b+c)×d (33)(a×b+c)÷d (34)a÷b+c×d 13、公式中只有“×”号、“÷”号和 “-”号 (35)(a-b)×c÷d (36)(a×b-c)÷d (37)(a-b÷c)….等不同形式的组合,根据计算公式,共有4×3×2×1=24种组合方式。 三、计算机程序设计 有了以上的数学分析,现在就可以进行计算机程序设计了,在程序界面上放4个能输入扑克牌点数的文本框,分别代表“1号牌”、“2号牌”、“3号牌”和“4号牌”,再放一个计算按钮,如下图: 点击“计算”按钮,计算机程序计算的执行过程是: 首先是第一种组合: a=“1号牌” b=“2号牌” c=“3号牌” d=“4号牌” 然后调用计算公式,即首先套用第一个公式,如果结果等于24,则显示结果,否则,继续套用第二个公式……,直至第40个公式,如计算结果仍不等于24,则考虑第二种组合: a=“1号牌” b=“2号牌” c=“4号牌” d=“3号牌” 再次调用计算公式,这样反复循环,直至第24种组合,如结果仍不等于24,则判断为不能算出。把以上过程总结成程序流程图: 把以上的程序流程编译成计算机语言,一个能“巧算24点”计算机程序就诞生了,经过实践中测试,只要抽出的4张牌“有解”,它均能算出(程序下载:/xuelinfeng.htm)。 附录:程序代码 首先在窗体上放置4个文本框,分别命名为“牌号1”、“牌号1”、 “牌号2”、“牌号3”和“牌号4”,放置1个标签,命名为“显示 结果”,再放置一个按钮,命名为“计算”,声明全局变量:a、b c、d。绿色文字为注释部分,本代码在VB6.0中编译通过。 Dim a, b, c, d Sub 调用计算公式()储存40个计算公式 公式1 If a + b + c + d = 2

文档评论(0)

czy2014 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档