1. Trang chủ
  2. » Trung học cơ sở - phổ thông

welcome to nguyenhuuthe sites

5 12 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 5
Dung lượng 320,85 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Hãy tìm cách đưa được 3 nhà sư sang bờ sông bên kia an toàn, biết rằng mỗi lần thuyền chỉ chở được hai người, và nếu số lượng quỷ mà nhiều hơn số người trên bờ sau mỗi lần chở thì tính[r]

Trang 1

1

BÀI TOÁN ĐƯA NGƯỜI VÀ QUỶ QUA SÔNG

 Bên bờ sông có 3 nhà sư cùng với 3 con quỷ Hãy tìm cách đưa được 3 nhà sư sang bờ sông bên kia an toàn, biết rằng mỗi lần thuyền chỉ chở được hai người, và nếu số lượng quỷ mà nhiều hơn số người trên bờ sau mỗi lần chở thì tính mạng của các nhà sư sẽ bị quỷ tiêu diệt

Và điều đặc biệt là chỉ có duy nhất 1 con thuyền

 Ý tưởng:

 Đưa 2 quỷ qua sông, 1 con về (bên này còn 3 sư hai quỷ)

 Tiếp tục đưa 2 quỷ qua sông, một con về (bên này 3 sư 1 quỷ)

 Đưa 2 nhà sư qua sông, đưa một sư một quỷ về (bên này còn 2 sư hai quỷ)

 Đưa hai nhà sư qua sông

 Cho con quỷ ở bên kia sông về chở hai con quỷ còn lại qua

 Gọi x1 là số lượng quỷ tại bờ sông 1 (0<= x1 <= 3)

 Gọi y1 là số lượng người tại bờ sông 1 (0<= y1 <= 3)

 Gọi x2 là số lượng quỷ tại bờ sông 2 (0<= x2 <= 3)

 Gọi y2 là số lượng người tại bờ sông 2 (0<= y2 <= 3)

 Gọi z là trạng thái thuyền đi (=1) hoặc thuyền về (=0)

 Gọi q là số lượng quỷ xuống thuyền qua sông

 Gọi n là số lượng người xuống thuyền qua sông

 Điều kiện đầu của bài toán là : x1 = 3, y1=3 và x2 = 0, y2 = 0

 Điều kiện kết thúc của bài toán sẽ là : x1 = 0 và y1 = 0

Bài toán được mô tả theo ba luật chính như sau:

1 (Luật 1) Nếu số quỷ nhiều hơn số người tại 1 bờ sông thì quỷ sẽ ăn thịt người

2 (Luật 2) Thuyền chỉ qua sông được khi trên thuyền có 1 hoặc 2 đối tượng để bơi thuyền

Trang 2

Minh họa kết quả xử lý:

TH1: không có đối tượng bơi thuyền

TH2: số đối tượng xuống thuyền quá tải trọng

TH3: Số quỷ nhiều hơn số người tại một bờ sông

Trang 3

3

TH4: chuyển đúng luật và toàn bộ quỷ và người qua sông an toàn

Trang 5

5

Giải thuật:

Xử lý trong trường hợp nhập đúng luật (TH4), các trường hợp khác sinh viên phải cài đặt xử lý thêm

//Trạng thái ban đầu

x1 = 3;

y1 = 3;

z = 1; //z=1: thuyền đi, z=0: thuyền về

x2 = 0;

y2 = 0;

while(x1 > 0 hoặc y1 > 0){

if(z = 1){

nhập q; //Số quỷ xuống thuyền

nhập n; //Số người xuống thuyền

x1 -= q;

y1 -= n;

z = 0;

x2 += q;

y2 += n;

}else{

nhập q; //Số quỷ xuống thuyền

nhập n; //Số người xuống thuyền

x2 -= q;

y2 -= n;

z = 1;

x1 += q;

y1 += n;

} }

Cải tiến giải thuật:

1 Cải tiến 1: Viết thành hàm các lượt đi qua sông và về, hàm kiểm tra các trường hợp 1, 2,

3 và hàm xử lý tổng hợp

2 Cải tiến 2: Viết lại thành class

Ngày đăng: 21/01/2021, 15:10

🧩 Sản phẩm bạn có thể quan tâm

w