用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++实现简单的猜数字游戏

  • 2014年02月18日 10:40
  • 891B
  • 下载

简单的编程(C++猜字游戏)

  • 2010年01月08日 19:17
  • 631B
  • 下载

C++猜字游戏程序设计报告和源代码

  • 2010年12月31日 09:50
  • 31KB
  • 下载

利用C++编写一个“猜数字”游戏

#include#include using namespace std; int main() { int magic,n,t=1; char a; srand((unsigned)time(...
  • Erick_Who
  • Erick_Who
  • 2014年11月29日 13:49
  • 1975

一个简单的猜数字程序

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

猜数字的小程序源码

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

C++编程练习(1)——简单的猜数游戏

C++基础——简单的猜数游戏C++是面向对象的编程语言。类和对象使得解决问题变得非常方便。对于猜数游戏这样的程序来说,不需要使用类和对象,只需要借助函数即可完成。这里借助猜数游戏这个程序来复习基本的语...
  • happywlg123
  • happywlg123
  • 2017年03月25日 17:07
  • 831

C++猜数字游戏的程序,用srand()函数产生随机数

编写一个猜数字游戏的程序:程序随机选择一个1到1000的数,然后输出: I have a number between 1 and 1000. Can you guess my...
  • rl529014
  • rl529014
  • 2016年01月03日 16:42
  • 2173

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

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

Java实现猜数字游戏 数字区间1-10

/*需求: 实现猜数字游戏, 如果没有猜对可以继续输入你猜的数字,如果猜对了停止程序。最多只能猜三次,如果还剩下最后一次机会的时候要提醒用户。*/import java.util.*;class De...
  • mengliran
  • mengliran
  • 2017年04月20日 14:49
  • 1001
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用C++编的猜数字程序,由程序来猜
举报原因:
原因补充:

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