Tin Kien Giang K31
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Tin Kien Giang K31

Chao mung den voi dien dan Tin-KG Khoa 31
 
Trang ChínhTìm kiếmLatest imagesĐăng kýĐăng Nhập

 

 DE QUI BAI TOAN CON HAU

Go down 
3 posters
Tác giảThông điệp
thu huong
Moderator
Moderator



Tổng số bài gửi : 25
Registration date : 17/09/2007

DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty9/4/2008, 19:28

Mọi người cho mình thêm ý kiến nghe!!!.
#include <iostream>
#include <conio.h>

using namespace std;

int x[8],a[8];
int c[15],b[15];
int i;

void xuat()
{
for(int k=0;k<8;k++)
cout<<x[k];
}
void Try(int i)
{
int j;
if(i>Cool
xuat();
else
{
for(j=1;j<=8;j++)
{
if((a[j]==0)&&(b[i+j]==0)&&(c[i-j]==0))
{
x[i]=j;
a[j]=1;
b[i+j]=1;
c[i-j]=1;
Try(i+1);
c[i-j]=0;
b[i+j]=0;
a[j]=0;

}
}
}
}
void khoitao()
{
for(int i=1;i<=8;i++)
a[i]=0;
for(i=2;i<16;i++)
b[i]=0;
for(i=-7;i<7;i++)
c[i]=0;
}
void main()
{
khoitao();
Try(1);
getch();
}
Về Đầu Trang Go down
thu huong
Moderator
Moderator



Tổng số bài gửi : 25
Registration date : 17/09/2007

DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: Re: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty10/4/2008, 18:59

Mình viết code chắc có bạn không hiểu. Mình có lời giải thích bổ sung:
** LƯU Ý :
Chương trình này dung thuật toán Đệ qui có quay lui dựa trên phương pháp thử và sai như sau:
BƯỚC 1:
- Khởi tạo giá trị ban đầu cho 3 mảng a[]- xét hàng ,b[]- xét theo đường chéo song song với đường chéo chính của ma trận 2 chiều,c[]-song song với đường chéo phụ .
- Ta dùng mảng x[] để lưu vị trí của con hậu.
BƯỚC 2 :
- Hàm TRY(i)
*Nếu i<8 cho j chạy từ 1 đến 8 . Nếu (a[j]==0)&&(b[i+j])&&(c[i-j]==0) thì đặt con HẬU tại vị trí j.
Khi đó a[i]=1;b[i+j]=1;c[i-j]=1;
Gọi đệ qui TRY(i+1).Lúc này a[i]=0;b[i+j]=0;c[i-j]=0;
*Ngược lại xuất ra kết quả.
Về Đầu Trang Go down
thu huong
Moderator
Moderator



Tổng số bài gửi : 25
Registration date : 17/09/2007

DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: Re: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty16/4/2008, 19:02

Bai nay chay dung ra ket qua roi .
#include <iostream>
#include <conio.h>

using namespace std;

int x[8],a[8];
int c[15],b[15];
int i;

void xuat()
{
for(int i=0;i<8;i++)
{
for(int k=0;k<8;k++)
{
if(x[i]==k)
cout<<"H"<<" ";
else
cout<<"*"<<" ";
}

cout<<endl;
}
}
void Try(int i)
{
int j;
if(i>Cool//
xuat();
else
{
for(j=1;j<=8;j++)
{
if((a[j]==0)&&(b[i+j]==0)&&(c[i-j+7]==0))
{
x[i]=j;
a[j]=1;
b[i+j]=1;
c[i-j]=1;
Try(i+1);
c[i-j]=0;
b[i+j]=0;
a[j]=0;

}
}
}
}
void khoitao()
{
for(int i=1;i<=8;i++)
a[i]=0;
for(i=2;i<16;i++)
b[i]=0;
for(i=0;i<16;i++)
c[i]=0;
}
void main()
{
khoitao();
Try(1);
// xuat();

getch();
}
Về Đầu Trang Go down
haiminhit




Tổng số bài gửi : 13
Registration date : 25/03/2008

DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: Re: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty18/4/2008, 19:42

Cam on Huong nhieu nha!!!
Về Đầu Trang Go down
tranhuuquocthu
Supervisor
Supervisor



Tổng số bài gửi : 7
Registration date : 26/09/2007

DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: Re: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty27/4/2008, 09:51

Một bạn lớp tin k.2 Bình Dương làm bài này như sau, các bạn tham khảo nhé:
http://groups.google.com/group/toansupham/web/Kimanh_8CONHAU.CPP

http://groups.google.com/group/toansupham/files
Về Đầu Trang Go down
Sponsored content





DE QUI BAI TOAN CON HAU Empty
Bài gửiTiêu đề: Re: DE QUI BAI TOAN CON HAU   DE QUI BAI TOAN CON HAU Empty

Về Đầu Trang Go down
 
DE QUI BAI TOAN CON HAU
Về Đầu Trang 
Trang 1 trong tổng số 1 trang
 Similar topics
-
» Ba Bai Toan Ve Ba Lo
» Thuat toan 8 con hau

Permissions in this forum:Bạn không có quyền trả lời bài viết
Tin Kien Giang K31 :: Cộng Đồng :: Cộng Đồng :: Thảo luận chung-
Chuyển đến