亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 8_num.cpp

?? 人工智能中的八數(shù)碼問(wèn)題
?? CPP
字號(hào):
#include "stdafx.h"
#include "iostream.h"
#include <time.h>
#include <stdio.h>
#include <dos.h>
#include <conio.h>

static int target[9]={1,2,3,4,5,6,7,8,0};
//class definition
class eight_num
{
private:
	int num[9];
	int not_in_position_num;
	int deapth;
	int eva_function;

public:
	eight_num* parent;
	eight_num* leaf_next;
	eight_num* leaf_pre;

	eight_num(int init_num[9]);
	eight_num(int num1,int num2,int num3,int num4,int num5,int num6,int num7,int num8,int num9)
	{
		num[0]=num1;
		num[1]=num2;
		num[2]=num3;
		num[3]=num4;
		num[4]=num5;
		num[5]=num6;
		num[6]=num7;
		num[7]=num8;
		num[8]=num9;
	}
	eight_num(void)
	{
		for (int i=0;i<9;i++)
			num[i]=i;
	}

	void cul_para(void);

	void get_numbers_to(int other_num[9]);
	int get_nipn(void)
	{return not_in_position_num;}
	int get_deapth(void)
	{return deapth;}
	int get_evafun(void)
	{return eva_function;}
	void set_num(int other_num[9]);

	void show(void);
	
	eight_num& operator=(eight_num&);
	eight_num& operator=(int other_num[9]);
	int operator==(eight_num&);
	int operator==(int other_num[9]);
};

void eight_num::cul_para(void)
{
	int i;
	int temp_nipn=0;
	for (i=0;i<9;i++)
		if (num[i]!=target[i])
			temp_nipn++;
	not_in_position_num=temp_nipn;
	if (this->parent==NULL)
		deapth=0;
	else
		deapth=this->parent->deapth+1;
	eva_function=not_in_position_num+deapth;
}

eight_num::eight_num(int init_num[9])
{
	for (int i=0;i<9;i++)
		num[i]=init_num[i];
}

void eight_num::show()
{
	cout<<num[0];
	cout<<" ";
	cout<<num[1];
	cout<<" ";
	cout<<num[2];
	cout<<"\n";
	cout<<num[3];
	cout<<" ";
	cout<<num[4];
	cout<<" ";
	cout<<num[5];
	cout<<"\n";
	cout<<num[6];
	cout<<" ";
	cout<<num[7];
	cout<<" ";
	cout<<num[8];
	cout<<"\n";
}

void eight_num::get_numbers_to(int other_num[9])
{
	for (int i=0;i<9;i++)
		other_num[i]=num[i];
}

void eight_num::set_num(int other_num[9])
{
	for (int i=0;i<9;i++)
		num[i]=other_num[i];
}

eight_num& eight_num::operator=(eight_num& another_8num)
{
	for (int i=0;i<9;i++)
		num[i]=another_8num.num[i];
	not_in_position_num=another_8num.not_in_position_num;
	deapth=another_8num.deapth+1;
	eva_function=not_in_position_num+deapth;
	return *this;
}

eight_num& eight_num::operator=(int other_num[9])
{
	for (int i=0;i<9;i++)
		num[i]=other_num[i];
	return *this;
}

int eight_num::operator==(eight_num& another_8num)
{
	int match=1;
	for (int i=0;i<9;i++)
		if(num[i]!=another_8num.num[i])
		{
			match=0;
			break;
		}
	if (match==0)
		return 0;
	else 
		return 1;
}

int eight_num::operator==(int other_num[9])
{
	int match=1;
	for (int i=0;i<9;i++)
		if(num[i]!=other_num[i])
		{
			match=0;
			break;
		}
	if (match==0)
		return 0;
	else 
		return 1;
}

//class definition over
//*************************


//空格向上移
int move_up(int num[9])
{
	for (int i=0;i<9;i++)
		if (num[i]==0)
			break;
	if (i<3)
		return 0;
	else
	{
		num[i]=num[i-3];
		num[i-3]=0;
		return 1;
	}
}

//空格向下移
int move_down(int num[9])
{
	for (int i=0;i<9;i++)
		if (num[i]==0)
			break;
	if (i>5)
		return 0;
	else
	{
		num[i]=num[i+3];
		num[i+3]=0;
		return 1;
	}
}
//空格向左移
int move_left(int num[9])
{
	for (int i=0;i<9;i++)
		if (num[i]==0)
			break;
	if (i==0||i==3||i==6)
		return 0;
	else
	{
		num[i]=num[i-1];
		num[i-1]=0;
		return 1;
	}
}
//空格向右移
int move_right(int num[9])
{
	for (int i=0;i<9;i++)
		if (num[i]==0)
			break;
	if (i==2||i==5||i==8)
		return 0;
	else
	{
		num[i]=num[i+1];
		num[i+1]=0;
		return 1;
	}
}

//判斷可否解出
int icansolve(int num[9],int target[9])
{
	int i,j;
	int count_num,count_target;
	for (i=0;i<9;i++)
		for (j=0;j<i;j++)
		{
			if(num[j]<num[i]&&num[j]!=0)
				count_num++;
			if(target[j]<target[i]&&target[j]!=0)
				count_target++;
		}
	count_num=count_num-2*(count_num/2);
	count_target=count_target-2*(count_target/2);
	if ((count_num==1&&count_target==1)||(count_num==0&&count_target==0))
		return 1;
	else
		return 0;
}

//判斷有無(wú)重復(fù)
int existed(int num[9],eight_num *where)
{
	eight_num *p;
	for(p=where;p!=NULL;p=p->parent)
		if(*p==num)
			return 1;
	return 0;
}

//尋找估價(jià)函數(shù)最小的葉子節(jié)點(diǎn)
eight_num* find_OK_leaf(eight_num* start)
{
	eight_num *p,*OK;
	p=OK=start;
	int min=start->get_evafun();
	for(p=start;p!=NULL;p=p->leaf_next)
		if(min>p->get_evafun())
		{
			OK=p;
			min=p->get_evafun();
		}
	return OK;
}

//主函數(shù)開(kāi)始
int main(void)
{
	double  time;   
	clock_t Start,Finish;
	int memery_used=0,step=0;
	int num[9];
	int flag=0;//是否輸入錯(cuò)誤標(biāo)志,1表示輸入錯(cuò)誤
	int bingo=0;//是否查找成功標(biāo)志,1表示成功
	int i,j;
	cout<<"Please input the number(0 for the blank):\n";
	for (i=0;i<9;i++)
	{
		flag=0;
		cin>>num[i];
		for(j=0;j<i;j++)
			if(num[i]==num[j])
				flag=1;
		if (num[i]<0||num[i]>8||flag==1)
		{
			i--;
			cout<<"Illegle number!\tReinput!\n";
		}
	}
	cout<<"Do you want to modify the target(Y/N)?";
	char input;
	cin>>input;
	if (input=='y'||input=='Y')
	{
		cout<<"\nPlease input the new target:\n";
		for (i=0;i<9;i++)
		{
			flag=0;
			cin>>target[i];
			for(j=0;j<i;j++)
				if(target[i]==target[j])
					flag=1;
			if (target[i]<0||target[i]>8||flag==1)
			{
				i--;
				cout<<"Illegle number!\tReinput!\n";
			}
		}
	}

	eight_num S(num),Target(target);
	S.parent=S.leaf_next=S.leaf_pre=NULL;
	S.cul_para();
	memery_used++;
	cout<<"Now the initial numbers are:\n";
	S.show();
	cout<<"And the Target is:\n";
	Target.show();
	
	if(!icansolve(num,target))
	{
		cout<<"No one can solve it!\n";
		cin>>i;
		return 1;
	}

	Start=clock( );

	eight_num *OK_leaf=&S,*leaf_start=&S,*new_8num,*p;
	while(OK_leaf!=NULL&&bingo!=1)
	{
		OK_leaf=find_OK_leaf(leaf_start);
		if(*OK_leaf==Target)
		{
			bingo=1;
			break;
		}
		
		p=OK_leaf->leaf_pre;
		OK_leaf->get_numbers_to(num);
		if(move_up(num)&&!existed(num,OK_leaf))
		{
			new_8num=new eight_num;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->leaf_pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->leaf_next=new_8num;
			p=new_8num;
			memery_used++;
		}
		OK_leaf->get_numbers_to(num);
		if(move_down(num)&&!existed(num,OK_leaf))
		{
			new_8num=new eight_num;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->leaf_pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->leaf_next=new_8num;
			p=new_8num;
			memery_used++;
		}
		OK_leaf->get_numbers_to(num);
		if(move_left(num)&&!existed(num,OK_leaf))
		{
			new_8num=new eight_num;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->leaf_pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->leaf_next=new_8num;
			p=new_8num;
			memery_used++;
		}
		OK_leaf->get_numbers_to(num);
		if(move_right(num)&&!existed(num,OK_leaf))
		{
			new_8num=new eight_num;			
			new_8num->set_num(num);
			new_8num->parent=OK_leaf;
			new_8num->cul_para();
			new_8num->leaf_pre=p;
			if(p==NULL)
				leaf_start=new_8num;
			else
				p->leaf_next=new_8num;
			p=new_8num;
			memery_used++;
		}
		p->leaf_next=OK_leaf->leaf_next;
		if(OK_leaf->leaf_next!=NULL)
			OK_leaf->leaf_next->leaf_pre=p;
		OK_leaf->leaf_next=OK_leaf->leaf_pre=NULL;
	}

	Finish=clock( ); 

	if(bingo==1)
	{
		time = (double)(Finish-Start)*1000/CLOCKS_PER_SEC;
		eight_num *p;
		for (p=OK_leaf->parent;p!=NULL;p=p->parent)
		{
			cout<<"  ^\n";
			p->show();
			step++;
		}

		cout<<"Time cost:";
		cout<<time;
		cout<<"ms\n";
		cout<<"Memery cost:";
		cout<<memery_used;
		cout<<"blocks\n";
		cout<<"Totaly covered steps:";
		cout<<step;
		cout<<"\n";
	}
	else
		cout<<"Fail to find!";

	cin>>i;
	return 0;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久毛片高清国产| 日韩福利电影在线观看| 在线观看日韩毛片| 亚洲综合免费观看高清完整版| 欧美在线观看一区| 三级不卡在线观看| 日韩一区二区在线看片| 激情欧美一区二区三区在线观看| 久久综合色鬼综合色| 国产高清在线观看免费不卡| 国产精品久久久久久久久久免费看 | 欧洲精品一区二区三区在线观看| 视频一区二区中文字幕| 精品1区2区在线观看| voyeur盗摄精品| 亚洲无线码一区二区三区| 欧美一级爆毛片| 国产91在线看| 亚洲午夜久久久久久久久电影网 | 亚洲日穴在线视频| 欧美日本一区二区在线观看| 精品一区二区三区av| 亚洲欧美在线aaa| 777奇米成人网| 国产夫妻精品视频| 一片黄亚洲嫩模| 欧美xxxxxxxxx| 99精品视频免费在线观看| 五月天亚洲精品| 中文字幕va一区二区三区| 欧美午夜精品一区二区蜜桃| 韩国精品主播一区二区在线观看| 亚洲美女屁股眼交| 精品国产伦一区二区三区观看体验| 99精品视频在线免费观看| 日韩1区2区3区| 国产精品美女一区二区在线观看| 欧美日韩一区二区三区免费看 | 日韩情涩欧美日韩视频| av一本久道久久综合久久鬼色| 日韩精品国产精品| 国产精品天天看| 欧美日韩国产精品成人| 成人激情开心网| 日韩高清在线不卡| 亚洲同性gay激情无套| 日韩一区二区电影| 色综合久久久久久久| 国产一区欧美一区| 亚洲国产日韩一级| 国产精品麻豆视频| 欧美成人一区二区三区片免费 | 91免费观看视频在线| 免费美女久久99| 一区二区免费在线| 国产色综合久久| 欧美伦理电影网| 91丨九色丨蝌蚪丨老版| 国产在线不卡视频| 天天爽夜夜爽夜夜爽精品视频| 国产精品亲子伦对白| 精品久久久网站| 欧美日韩在线一区二区| 9人人澡人人爽人人精品| 久久国产乱子精品免费女| 亚洲一区影音先锋| 中文字幕一区二区三区乱码在线 | 国产精品色哟哟| 欧美xxxxxxxx| 欧美乱熟臀69xxxxxx| 色悠悠久久综合| 成人美女视频在线看| 精彩视频一区二区三区| 偷拍日韩校园综合在线| 亚洲日本电影在线| 亚洲国产精品成人久久综合一区 | 精品噜噜噜噜久久久久久久久试看| 一本色道a无线码一区v| 成人三级在线视频| 狠狠色丁香久久婷婷综合丁香| 日韩av在线发布| 亚洲国产毛片aaaaa无费看| 亚洲天堂福利av| 欧美国产一区二区| 久久久久久久综合| 精品国精品国产尤物美女| 欧美一区二区在线视频| 欧美三级电影网| 欧美午夜宅男影院| 色婷婷久久久亚洲一区二区三区| 成人福利在线看| 成人黄色电影在线| 成人性视频免费网站| 精品无人码麻豆乱码1区2区| 久久99精品国产.久久久久| 蜜桃久久久久久久| 免费黄网站欧美| 裸体歌舞表演一区二区| 久久99精品久久久久| 六月丁香婷婷久久| 理论片日本一区| 久久电影网电视剧免费观看| 麻豆久久一区二区| 久久精品免费观看| 另类成人小视频在线| 久久精品久久99精品久久| 免费在线看一区| 精品亚洲国内自在自线福利| 国内久久精品视频| 国产精品一区专区| 国产成人欧美日韩在线电影| 国产成人8x视频一区二区| 国产成人av自拍| gogogo免费视频观看亚洲一| 91麻豆免费观看| 日本精品裸体写真集在线观看| 欧美综合久久久| 欧美剧情电影在线观看完整版免费励志电影 | 日韩欧美国产电影| 亚洲精品在线观看网站| 国产日韩v精品一区二区| 中文字幕国产一区| 亚洲欧美日本在线| 亚洲国产欧美日韩另类综合| 天天影视网天天综合色在线播放| 日本伊人色综合网| 久久超碰97人人做人人爱| 国产成人av一区二区三区在线| 不卡的电视剧免费网站有什么| 91视视频在线观看入口直接观看www | 91久久精品日日躁夜夜躁欧美| 91久久精品网| 91精品国产福利| 久久蜜桃香蕉精品一区二区三区| 中文字幕第一区| 亚洲伦理在线精品| 天天色天天爱天天射综合| 激情小说亚洲一区| 成人黄色777网| 精品视频在线免费看| 精品福利在线导航| 亚洲特黄一级片| 日韩精品成人一区二区三区| 国产最新精品免费| a4yy欧美一区二区三区| 欧美日韩国产不卡| 26uuu精品一区二区在线观看| 国产精品三级在线观看| 亚洲综合无码一区二区| 麻豆精品精品国产自在97香蕉| 国产999精品久久久久久绿帽| 欧洲另类一二三四区| 精品国产乱码久久久久久影片| 中文字幕一区二区三区精华液| 亚洲国产日韩a在线播放性色| 久久99精品国产.久久久久| aa级大片欧美| 日韩欧美在线123| 国产精品乱码一区二区三区软件| 亚洲国产成人va在线观看天堂| 国产最新精品免费| 欧美在线观看视频一区二区| 久久综合色之久久综合| 亚洲一区二区三区激情| 国产乱色国产精品免费视频| 欧美在线高清视频| 国产午夜精品久久| 亚洲国产aⅴ天堂久久| 国产精品性做久久久久久| 色综合欧美在线| 久久久亚洲精华液精华液精华液| 夜夜操天天操亚洲| 国产一区二区三区免费| 色噜噜狠狠成人网p站| 久久久久久久久99精品| 亚洲一区二区三区国产| 成人爽a毛片一区二区免费| 777欧美精品| 亚洲人成人一区二区在线观看| 精品无码三级在线观看视频| 欧美午夜寂寞影院| 国产精品久久久久久久久果冻传媒 | 精品国产第一区二区三区观看体验 | 国产电影精品久久禁18| 欧美高清视频www夜色资源网| 国产欧美一区二区三区鸳鸯浴| 性感美女久久精品| av在线综合网| 久久久久久久综合日本| 午夜精品福利久久久| av福利精品导航| 久久看人人爽人人| 免费亚洲电影在线| 欧美三级乱人伦电影| 综合分类小说区另类春色亚洲小说欧美| 麻豆免费精品视频| 欧美欧美午夜aⅴ在线观看| 亚洲日本在线看| 国产成a人亚洲| 精品国产a毛片|