giảng viên : nguyễn thị vân môn : phân tích và thiết kế giải thuật nhóm : 1

Post on 01-Jan-2016

42 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Trường CĐ Công Nghệ Thủ Đức. Giảng Viên : Nguyễn Thị Vân Môn : Phân Tích và Thiết Kế Giải Thuật Nhóm : 1 Chủ Đề : Bài Toán n Quân Hậu Thành Viên : Lý Anh Cường Nguyễn Minh Thuận. I. Bài toán n quân hậu. - PowerPoint PPT Presentation

TRANSCRIPT

Bài toán Bài toán nn quân hậu là bài toán đặt quân hậu là bài toán đặt n quân n quân hậuhậu trên bàn  trên bàn cờ vuacờ vua kích  kích thước thước n n ×× n n sao cho không sao cho không có quân hậu nào có thể "ăn" được quân hậu kháccó quân hậu nào có thể "ăn" được quân hậu khác

Bài toán 4 quân hậuBài toán 4 quân hậu

Ký hiệu quân hậu đứng ở ô nằm trên hàng thứ i của lời giải là Q[i, j]

1 2 3 4j

1

2

3

4

i

i – j = consti – j = const

i + j = consti + j = const

Vì thế ta gọi các đường chéo song song với đường chéo chính là đường chéo trừ, các đường chéo song song với đường chéo phụ là đường chéo cộng.

B1: Chia n cho 12 lấy số dư r.

B2: Viết lần lượt các số chẵn từ 2 – n. Nếu số dư là 3 hoặc 9 thì chuyển 2 xuống cuối danh sách

Bài toán 4 quân hậu

2 4 6 8 …

4 % 12 = 4

r = 4

B1

Nếu r = 3 hoặc r = 9

2 4B2

4 6 8 … 2

B32 4 1 3

B3: Bổ sung lần lượt các số lẻ từ 1 đến n vào cuối danh sách. Nếu r = 8 thì đổi chỗ từng cặp, còn nếu r = 2 thì đổi chỗ 1 và 3 và chuyển 5 xuống cuối danh sách và nếu r = 3 hoặc r = 9, chuyển 1 và 3 xuống cuối danh sách

Nếu r = 8

… 1 3 5 7 …

… 3 1 7 5 …

Nếu r = 2

… 1 3 5 7 …

… 3 1 7 … 5

B32 4 1 3

B3: Bổ sung lần lượt các số lẻ từ 1 đến n vào cuối danh sách. Nếu r = 8 thì đổi chỗ từng cặp, còn nếu r = 2 thì đổi chỗ 1 và 3 và chuyển 5 xuống cuối danh sách và nếu r = 3 hoặc r = 9, chuyển 1 và 3 xuống cuối danh sách

Nếu r = 8

Nếu r = 3 hoặc r = 9

… 1 3 5 7 …

… 5 7 … 1 3

Nếu r = 2

… 3 1 7 5 …

… 3 1 7 … 5

B4: Lấy danh sách trên làm danh sách chỉ số cột, ghép vào danh sách chỉ số dòng theo thứ tự tự nhiên ta được một lời giải của bài toán.

B4

2 4 1 3

1

2

3

4

1 2 3 4

14 quân hậu (r = 2): 2, 4, 6, 8, 10, 12, 14, 3, 1, 7, 9, 11, 13, 5.

15 quân hậu (r = 3): 4, 6, 8, 10, 12, 14, 2, 5, 7, 9, 11, 13, 15, 1, 3.

20 quân hậu (r= 8): 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 3, 1, 7, 5, 11, 9, 15, 13, 19, 17.

Ta có bảng sau đây Ta có bảng sau đây cho cho nn quân hậu quân hậu

n 1 2 3 4 5 6 7 8 9 10

số lời giải không đối

xứng1 0 0 1 2 1 6 12 46 92

Tất cả số lời giải

1 0 0 2 10 4 40 92 352 724

Lưu ýLưu ý:: rằng bài toán với 6 quân hậu có ít lời giải hơn rằng bài toán với 6 quân hậu có ít lời giải hơn bài toán với 5 quân hậu. Hiện nay chưa có công thức về số bài toán với 5 quân hậu. Hiện nay chưa có công thức về số lượng chính xác lời giải.lượng chính xác lời giải.

Void n_Queens(i) { for (j = 1; j <= n; j++)

if (a[j] && b[i + j] && c[i - j]) { 

x[i] = j;a[j] = b[i + j] = c[i - j] = false;

if (i == n) Print(x);elsen_Queens(i + 1);

 a[j] = b[i + j] = c[i - j] = true;

}}Thủ tục tìm tất cả các lời giải của bài toán n hậu chỉ bao gồm một lời gọi  n_Queens(1);

StartStart

1.1 1.2

2.3 2.4

1.41.3

3.2

2.1

3.1

2.4

4.3

2.22.1

4.2

3.4 3.3

top related