45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:在c#中实现猜数字算法的方法

在c#中实现猜数字算法的方法

2016-08-29 12:09:51 来源:www.45fan.com 【

在c#中实现猜数字算法的方法

算法:采用逐步缩小状态空间法,首先找出4个正确的数(位置不管),然后再确定其位置,对下一个测试的4个数字采用估价函数选取值最大的一个状态,这样状态空间缩小的很快,估价函数是该状态当未被排除时其参考的状态的 A的个数加B的个数,下面是全部程序,测试代码:(每一个CASE是随机产生的)

Cmain2 C = new Cmain2();
C.Search();

程序:(代码比较乱,思路不乱)

在c#中实现猜数字算法的方法usingSystem;
在c#中实现猜数字算法的方法
usingSystem.Collections;
在c#中实现猜数字算法的方法
usingSystem.Collections.Generic;
在c#中实现猜数字算法的方法
usingSystem.Text;
在c#中实现猜数字算法的方法
usingSystem.Threading;
在c#中实现猜数字算法的方法
在c#中实现猜数字算法的方法
namespace猜数字
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
publicclassCCase
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
publicint[]Case;
在c#中实现猜数字算法的方法
publicintvalue;
在c#中实现猜数字算法的方法
publicintA;
在c#中实现猜数字算法的方法
publicintB;
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法publicclassmyReverserClass:IComparer
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
intIComparer.Compare(Objectx,Objecty)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
return((newCaseInsensitiveComparer()).Compare(((CCase)y).value,((CCase)x).value));
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法publicclassmyReverserClass1:IComparer
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
intIComparer.Compare(Objectx,Objecty)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
return((newCaseInsensitiveComparer()).Compare(((CCase)x).A,((CCase)y).A));
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法publicclassCmain2
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法CCaseCMyCase;
在c#中实现猜数字算法的方法
publicCCaseAnswer;
在c#中实现猜数字算法的方法ArrayListRightAr
=newArrayList();
在c#中实现猜数字算法的方法ArrayListCaseAr
=newArrayList();
在c#中实现猜数字算法的方法ArrayListACase
=newArrayList();
在c#中实现猜数字算法的方法
publicvoidInit()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
for(inti=0;i<10;i++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
for(intj=i+1;j<10;j++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
for(intk=j+1;k<10;k++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
for(intl=k+1;l<10;l++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法CCaseMyCase
=newCCase();
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法MyCase.Case
=newint[4]{i,j,k,l};
在c#中实现猜数字算法的方法CaseAr.Add(MyCase);
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法CMyCase=(CCase)CaseAr[0];
在c#中实现猜数字算法的方法CreateAnswer();
在c#中实现猜数字算法的方法
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法publicCmain2()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法Init();
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法///<summary>
在c#中实现猜数字算法的方法///搜索正确数字
在c#中实现猜数字算法的方法
///</summary>

在c#中实现猜数字算法的方法publicvoidSearch()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法Console.WriteLine(
"随机生成的4个数字: "+Answer.Case[0]+""+Answer.Case[1]+""+Answer.Case[2]+""+Answer.Case[3]+" 下面开始模拟猜数字: ");
在c#中实现猜数字算法的方法
//Answer.Case=newint[4]{9,6,4,3};
在c#中实现猜数字算法的方法while((CMyCase.A+CMyCase.B!=4)&&CaseAr.Count>1)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
//Thread.Sleep(1000);
在c#中实现猜数字算法的方法CreateNextCase();
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法Console.WriteLine(" 已找到满意解,继续寻找最优解: ");
在c#中实现猜数字算法的方法GetTheRightAnswer();
在c#中实现猜数字算法的方法Console.WriteLine(
"找到了答案:"+CMyCase.Case[0]+""+CMyCase.Case[1]+""+CMyCase.Case[2]+""+CMyCase.Case[3]+"");
在c#中实现猜数字算法的方法Console.WriteLine(
"共进行了"+ACase.Count+"次CASE");
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法///<summary>
在c#中实现猜数字算法的方法///产生下一用于测试的4数字
在c#中实现猜数字算法的方法
///</summary>

在c#中实现猜数字算法的方法publicvoidCreateNextCase()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法ACase.Add(CMyCase);
在c#中实现猜数字算法的方法CheckAnwser();
在c#中实现猜数字算法的方法Console.WriteLine(
"CASE"+ACase.Count+":"+CMyCase.Case[0]+""+CMyCase.Case[1]+""+CMyCase.Case[2]+""+CMyCase.Case[3]+" 测试结果:"+CMyCase.A+"A"+CMyCase.B+"B");
在c#中实现猜数字算法的方法CaseAr.Remove(CMyCase);
在c#中实现猜数字算法的方法ClearCaseAr();
在c#中实现猜数字算法的方法Console.WriteLine(
"剩下的状态空间数:"+CaseAr.Count+" ");
在c#中实现猜数字算法的方法
if(CaseAr.Count<=1)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
if(CaseAr.Count==1)
在c#中实现猜数字算法的方法CMyCase
=(CCase)CaseAr[0];
在c#中实现猜数字算法的方法
return;
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法CMyCase=(CCase)CaseAr[0];
在c#中实现猜数字算法的方法
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法///<summary>
在c#中实现猜数字算法的方法///逐步缩小状态空间
在c#中实现猜数字算法的方法
///</summary>

在c#中实现猜数字算法的方法publicvoidClearCaseAr()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
intvalue=CMyCase.value;
在c#中实现猜数字算法的方法
for(inti=0;i<CaseAr.Count;)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
intcount=0;
在c#中实现猜数字算法的方法CCaseccase
=((CCase)CaseAr[i]);
在c#中实现猜数字算法的方法
for(intj=0;j<4;j++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
for(intk=0;k<4;k++)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法
if(CMyCase.Case[j]==ccase.Case[k])
在c#中实现猜数字算法的方法count
++;
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法if(count!=value)
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法CaseAr.RemoveAt(i);
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法else
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法{
在c#中实现猜数字算法的方法ccase.value
=value;
在c#中实现猜数字算法的方法i
++;
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法myReverserClasscmp=newmyReverserClass();
在c#中实现猜数字算法的方法CaseAr.Sort(cmp);
在c#中实现猜数字算法的方法}

在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法///<summary>
在c#中实现猜数字算法的方法///随即产生要猜的CASE
在c#中实现猜数字算法的方法
///</summary>

在c#中实现猜数字算法的方法publicvoidCreateAnswer()
在c#中实现猜数字算法的方法在c#中实现猜数字算法的方法
{
在c#中实现猜数字算法的方法Answer

本文地址:http://www.45fan.com/a/question/69313.html
Tags: 实现 算法 数字
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部