青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

浪跡天涯

唯有努力...
努力....再努力...

人機猜數(shù)游戲

請人想一個四位的整數(shù),計算機來猜,人給計算機提示信息,最終看計算機用幾次猜出一個人“想”的數(shù)。請編程實現(xiàn)。

問題分析
解決這類問題時,計算機的思考過程不可能象人一樣具完備的推理能力,關(guān)鍵在于要將推理和判斷的過程變成一種機械的過程,找出相應(yīng)的規(guī)則,否則計算機難以完成推理工作。
基于對問題的分析和理解,將問題進行簡化,求解分為兩個步聚來完成:首先確定四位數(shù)字的組成,然后再確定四位數(shù)字的排列順序??梢粤谐鋈缦乱?guī)則:
1)產(chǎn)生四位數(shù)字的全部排列產(chǎn)生四位數(shù)字的全部排列。
2)生成隨機數(shù),根據(jù),根據(jù)人輸入的正確數(shù)字及正確位置的數(shù)目,進行刷選。
3)再剩下的結(jié)果中,生成隨機數(shù),重復步驟2,直至找到。

GetNextGuess()函數(shù)算法不知該如何理解?
我覺得這個函數(shù)算法不好,沒有充分利用先前的猜數(shù)以及結(jié)果進行下一次的猜數(shù)。

程序代碼:
#include <iostream>
#include <time.h>
#include <string>
#include <list>
#include <limits>

using namespace std;
list<string> numList;

void   Initialize();
string RanddomNum();
string GetNextGuess();
int    CountN(const string &guess, const string &str);
int    CountP(const string &guess, const string &str);


int main()
{
 Initialize();   // 初始化
 string guess = RanddomNum(); // 第1回合隨機猜數(shù)
 int n, p;    // 分別表示有幾個數(shù)字猜對,有幾個數(shù)字位置也對
 
 while (1)
 {
  cout << guess << endl;
  cin >> n >> p;
  if (n == 4 && p == 4) // 猜中
   break;
  list<string>::iterator it;
  for (it = numList.begin();it != numList.end();)
  {
   if (CountN(guess, *it) != n) // 如果沒有n個數(shù)字對
   {
    it = numList.erase(it);  // 不可能是被猜數(shù),篩掉
    continue;
   }
   if (CountP(guess, *it) != p) // 如果沒有p個數(shù)字位置對
   {
    it = numList.erase(it);  // 不可能是被猜數(shù),篩掉
    continue;
   }
   ++it;
  }
  if (numList.empty()) // 沒有候選數(shù)了,人欺騙計算機
  {
   cout << 0 << endl;
   break;
  }
  guess = GetNextGuess();
 }
 return 0;
}

void Initialize()
{
 char buf[5] = {0};
 for (int i = '1'; i <= '9'; i++)
  for (int j = '0'; j <= '9'; j++)
   for (int k = '0'; k <= '9'; k++)
    for (int l = '0'; l <= '9'; l++)
    {
     buf[0] = i;
     buf[1] = j;
     buf[2] = k;
     buf[3] = l;
     numList.push_back(buf);
    }
}

string RanddomNum()
{
 srand(time(NULL));
 int i = rand() % 9000 + 1000;
 char buf[5] = {0};
 sprintf(buf, "%d", i);
 return buf;
}

int CountN(const string &guess, const string &num)
{
 string s = num;  // 復制num,用于下面避免重復匹配的操作
 int count = 0;
 for (int i = 0; i < 4; i++) // 對guess中每一個數(shù)字
 {
  string::size_type pos = s.find(guess[i]);
  if (pos != string::npos)
  {
   count++;
   s[pos] = 'x';  // 為避免重復匹配,將它替換為字符’x’
  }
 }
 return count;
}


int CountP(const string &guess, const string &str)
{
 int count = 0;
 for (int i = 0; i < 4; i++)
  count += (guess[i] == str[i]);
 return count;
}

string GetNextGuess()
{
 int min = numeric_limits<int>::max();
 string guess;   // 猜這個數(shù)
 list<string>::iterator it,it2;
 for (it = numList.begin();it != numList.end(); ++it)
 {
  int a[5][5] = {0};
  for (it2 = numList.begin();it2 != numList.end(); ++it2)
  {
   int x = CountN(*it, *it2);
   if (x == 0)
    a[0][0]++;    // 如果n=0,p一定=0
   else
    a[x][CountP(*it, *it2)]++;
  }
  int sum = 0;
  for (int i = 0; i < 5; i++)
   for (int j = 0; j <=i; j++) // 位置對的數(shù)字個數(shù)不會超過猜對的數(shù)字個數(shù)
    sum += a[i][j] * a[i][j];
  if (sum < min)
  {
   sum = min;
   guess = *it;
  }
 }
 return guess;
}

posted on 2008-01-04 09:22 浪跡天涯 閱讀(756) 評論(0)  編輯 收藏 引用 所屬分類: C++

<2008年1月>
303112345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統(tǒng)計

常用鏈接

留言簿(22)

隨筆分類(30)

隨筆檔案(29)

文章分類

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            性色av香蕉一区二区| 午夜在线电影亚洲一区| 一本色道久久综合亚洲精品小说 | 香蕉久久久久久久av网站| 激情小说亚洲一区| 影音先锋日韩资源| 亚洲国产另类 国产精品国产免费| 国产美女精品视频免费观看| 国产精品高潮在线| 国产精品一页| 在线精品高清中文字幕| 亚洲人成人一区二区三区| 一本色道久久88综合日韩精品| 91久久综合亚洲鲁鲁五月天| 日韩小视频在线观看| 亚洲午夜91| 美脚丝袜一区二区三区在线观看| 欧美成人日本| 亚洲尤物在线视频观看| 老司机午夜精品视频| 亚洲另类在线视频| 欧美天堂亚洲电影院在线播放| 亚洲视频一区二区免费在线观看| 国内精品久久久久久久影视蜜臀| 久久亚洲色图| 亚洲黄色一区| 久久99在线观看| 欧美激情 亚洲a∨综合| 亚洲免费小视频| 亚洲第一在线综合网站| 亚洲黄色大片| 国产精品拍天天在线| 午夜精品久久久久久久蜜桃app| 欧美日韩免费一区| 亚洲日本va午夜在线影院| 一区二区三区三区在线| 黄色在线成人| 91久久精品国产91久久性色| 亚洲尤物视频在线| 欧美激情性爽国产精品17p| 国产精品久在线观看| 免费成人高清| 国产午夜精品一区理论片飘花| 欧美日韩一区在线| 欧美日韩在线一二三| 国产麻豆精品视频| 99国内精品久久| 久久久精品日韩| 亚洲精品久久久久中文字幕欢迎你| 日韩视频一区二区三区在线播放| 亚洲乱亚洲高清| 亚洲一区免费在线观看| 欧美日韩国产精品自在自线| 美女福利精品视频| 日韩视频免费看| 久久久九九九九| 精品91在线| 老司机凹凸av亚洲导航| 先锋资源久久| 欧美国内亚洲| 亚洲美女免费精品视频在线观看| 亚洲电影在线| 老司机成人在线视频| 国内视频精品| 久久综合色88| 亚洲尤物视频在线| 国产精品一区在线观看| 亚洲一区在线免费| 欧美亚一区二区| 日韩亚洲欧美一区二区三区| 亚洲黑丝一区二区| 免费欧美电影| 亚洲欧美www| 亚洲一区二区久久| 激情欧美日韩| 久久精品国产第一区二区三区最新章节 | 久久免费视频一区| 一区二区三区久久久| 欧美国内亚洲| 六月婷婷一区| 欧美大片在线观看一区二区| 精品1区2区3区4区| 美女网站久久| 国产精品电影观看| 久久福利电影| 欧美成人精品影院| 亚洲承认在线| 亚洲天堂久久| 新67194成人永久网站| 国内精品嫩模av私拍在线观看| 久久视频一区| 亚洲亚洲精品在线观看 | 亚洲尤物在线| 欧美国产在线视频| 亚洲影视九九影院在线观看| 亚洲视频自拍偷拍| 国产精品亚洲一区二区三区在线| 99国产精品99久久久久久粉嫩| 亚洲欧美日韩精品久久久久| 国产日韩一区二区三区在线播放| 性欧美1819sex性高清| 欧美激情视频免费观看| 欧美中文字幕精品| 国产精品99一区| 欧美国产日韩二区| 狠色狠色综合久久| 欧美在线视频免费观看| 香蕉乱码成人久久天堂爱免费 | 国产午夜精品久久| 欧美v国产在线一区二区三区| 亚洲午夜在线观看| 99re亚洲国产精品| aa日韩免费精品视频一| 亚洲经典在线| 国产亚洲精品bv在线观看| 香蕉成人伊视频在线观看| 性欧美超级视频| 亚洲精品在线免费| 国产日韩精品一区二区| 欧美激情国产精品| 亚洲欧美偷拍卡通变态| 久久久精品国产99久久精品芒果| 亚洲国内精品在线| 欧美精品免费观看二区| 国产精品人成在线观看免费 | 欧美片网站免费| 亚洲片区在线| 欧美亚洲免费在线| 最新日韩中文字幕| 国产人成精品一区二区三| 欧美极品在线播放| 亚洲香蕉伊综合在人在线视看| 老司机成人网| 午夜免费日韩视频| 亚洲免费网站| 在线成人亚洲| 在线高清一区| 欧美先锋影音| 欧美日本精品一区二区三区| 欧美有码视频| 亚洲综合国产精品| 亚洲视频在线一区| 亚洲欧美成人网| 一区二区三区四区精品| 一二三区精品福利视频| 亚洲日本成人女熟在线观看| 亚洲欧洲另类| 亚洲精品乱码久久久久久按摩观| 亚洲国产精品一区| 99国内精品久久久久久久软件| 91久久精品国产91久久性色| 亚洲国产成人久久综合| 亚洲国产精品尤物yw在线观看| 亚洲精品视频在线播放| 亚洲精品在线二区| 亚洲一级片在线观看| 亚洲日韩欧美视频一区| 日韩一区二区精品在线观看| 国产伊人精品| 国产精品国产三级国产普通话99| 欧美三级午夜理伦三级中文幕 | 亚洲手机在线| 亚洲三级国产| 欧美系列电影免费观看| 亚洲一区二区三区视频播放| 欧美日韩亚洲另类| 欧美四级在线观看| 亚洲二区免费| 亚洲欧美日韩国产精品| 欧美激情中文字幕一区二区| 日韩图片一区| 国产精品s色| 日韩网站免费观看| 亚洲国产精品一区二区三区| 亚洲午夜精品一区二区三区他趣| 免费日韩成人| 亚洲精品资源| 日韩一级黄色av| 国产精品久久久久久一区二区三区 | 国产一区二区中文字幕免费看| 亚洲自啪免费| 午夜精品久久久久久久| 国产精品美女久久久久久2018| 亚洲午夜极品| 中文一区在线| 国产区二精品视| 久久久99国产精品免费| 亚洲日韩视频| 欧美日韩系列| 一区二区av在线| 日韩亚洲欧美精品| 国产精品激情电影| 亚洲影院一区| 亚洲女女做受ⅹxx高潮| 国产婷婷成人久久av免费高清| 久久精品免费看| 99在线|亚洲一区二区| 一区二区三区欧美在线| 国产一区免费视频| 亚洲激情在线观看|