用C++编的猜数字程序,由程序来猜

原创 2004年08月21日 08:12:00
呵呵,上学期学的数据挖掘里面讲到关于信息量的方法,小试了一下:
猜数字游戏:
? 即有四位十进制数字,一般可猜8次
? 每次返回aAbB(A表示数字正确并且位置正确,B表示数字正确但位置不正确)
? 如:假设要猜的数字是1234,如果游戏者猜0134即返回2A1B(3、4为A,1为B)

思路:
? 模拟人猜数字的过程,先构造一个集合包括所有可能的数字(10*9*8*7=5040种),先乱猜一个,根据返回xAxB来把原来集合里面的不符合的都删掉,然后根据选取下一个。选下一个的原则是:选最能区分剩下的集合的那个数,即:被选择的那个数得到的返回值为xAxB中任意一种的概率差不多。
? 我使用信息量的方法,即:
?? 对集合set(size个)中每一个数字n,用n的每一种返回值(从0a0b到4a0b,共有15种)做删减,看各剩下多少个,用pi表示第i种返回值得情况,然后根据信息量公式:info(n) = ∑(pi/size) * log(pi/size)计算,然后取max(info(i)) i=0..size;最大的那个info(n)对应的数字就是被选择的数字。

http://www.blogbus.com/blogbus/blog/userfiles/16192/1089196646.rar
压缩包中包括源码和经过VC6.0编译生成的可执行文件
GuessNumGame.dsw:简易的猜数字游戏
GuessNum.dsw:由计算机来猜数字,基本上6-7次就可以了
GuessNumAll.cpp:尚未编好,打算用来使用决策树方法猜数字,并可以算出对所有的数最多需要多少次

思路简单,但是计算起来很慢,做成Release版还勉强可以忍受有没有其他方法比较快啊?

一个用c++实现的猜数字的游戏

  • 2008年10月01日 16:20
  • 501KB
  • 下载

解猜数字游戏的程序

 电脑采用最擅长的穷举法来猜测,即:第一次,固定猜   0123;然后,人必定给出一个提示?a?b(1)。然后,电脑从0124开始搜索,每次加1,并分别和0123相比较,当找到第一个与标准答案一样为?...
  • sjcheck
  • sjcheck
  • 2007-10-28 10:22:00
  • 651

猜数字游戏及自动解猜数字程序

都是寂寞惹得祸...网络故障已经四天了,强烈谴责华数网通这种低效率的行为(好吧,谴责有个屁用)。实在无聊,于是写了一个猜数字游戏:随机生成一个[0, 99]之间的整数,如果猜得小了就显示 Too sm...
  • redraiment
  • redraiment
  • 2012-08-21 20:02:49
  • 4115

写一个简单猜数字游戏的小程序

需求:1、要求随机生成一个整数,由用户输入猜测的数字,猜测正确则游戏结束,错误则分数减10分,猜测次数自增1.当分数减为0时,提示用户是否充值,用户充值则游戏继续,重新生成随机数字,总分和答题次数重置...
  • ylyang12
  • ylyang12
  • 2016-10-25 11:22:56
  • 1703

编写一个猜数字的程序

例如 :/编写一个猜数字的程序 //系统生成一个随机数 范围0--100之间 //用户去猜     // 如果 猜大了,则系统提示:你猜大了 请小一点 // 如果猜小了,则系统提示,你猜小了,请大一点...
  • mihe123
  • mihe123
  • 2018-03-16 11:38:19
  • 28

猜数字的小程序源码

设计一个猜数字游戏程序,由系统自动产生一个四位数,各位数字互不相同,给玩家8次从键盘录入四个数字的机会,每次给出玩家猜中数字的个数及位置,直到数字及位置完全一致为止,如果8次机会均猜不中,则输出产生的...
  • tmd007
  • tmd007
  • 2006-01-12 20:01:00
  • 1591

猜数字程序

import java.util.*; public class GuessNumber {           public static void main (String args[ ])...
  • mcjchjb276
  • mcjchjb276
  • 2013-03-31 20:23:16
  • 274

一个简单的猜数字程序

  • 2009年05月24日 10:24
  • 3.61MB
  • 下载

c++猜数字游戏(电脑来猜)c++程序设计原理与实践习题4.4

编写一个猜数游戏程序。用户给出一个 1 到 100 之间的整数,程序通过提问来猜测用户所想的数是什么(例如:”你的数小于50吗?“),程序应该能够用不超过7个问题来确定这个数。提示:使用 以上是原...
  • rqcyds
  • rqcyds
  • 2017-03-01 18:10:51
  • 911

【基础编程】猜数字游戏的提示

★题目 实现一个经典“猜数字”游戏。给定答案序列和用户猜的序列,统计有多少数字位置正确(A),有多少数字在两个序列都出现过但位置不对(B) 输入包括多组数据。每组输入第一行为序列长度n,第...
  • XGsilence
  • XGsilence
  • 2016-10-29 13:33:02
  • 2015
收藏助手
不良信息举报
您举报文章:用C++编的猜数字程序,由程序来猜
举报原因:
原因补充:

(最多只允许输入30个字)