1. Trang chủ
  2. » Khoa Học Tự Nhiên

Toán rời rạc 3 listing

39 637 11

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

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 39
Dung lượng 812,06 KB

Nội dung

Học viện Công nghệ Bưu Viễn thông Khoa Công nghệ thông tin Toán rời rạc Bài toán liệt kê Ngô Xuân Bách Nội dung  Giới thiệu toán  Phương pháp sinh  Phương pháp quay lui  Bài tập http://www.ptit.edu.vn Giới thiệu toán liệt kê  Bài toán đếm: Xây dựng công thức tính nghiệm toán  Bài toán liệt kê: Nghiệm toán gì?  Phương pháp chung để giải toán liệt kê: Sử dụng thuật toán vét cạn xem xét tất khả xảy cấu hình tổ hợp để từ đưa nghiệm toán  Phương pháp liệt kê cần thỏa mãn điều kiện: o Không lặp lại cấu hình o Không bỏ sót cấu hình Các bước tiến hành giải toán máy tính:  o Hiểu yêu cầu toán o Chọn cấu trúc liệu biểu diễn phương án cần duyệt o Chọn thuật toán phù hợp với cấu trúc liệu o Cài đặt thuật toán & thử nghiệm chương trình o Tối ưu chương trình http://www.ptit.edu.vn Ví dụ Bài toán: Cho hình vuông gồm 25 hình vuông đơn vị Hãy điền số từ đến vào hình vuông đơn vị cho điều kiện sau thỏa mãn: a) Đọc từ trái sang phải theo hàng ta nhận số nguyên tố có chữ số; b) Đọc từ xuống theo cột ta nhận số nguyên tố có chữ số; c) Đọc theo hai đường chéo ta nhận số nguyên tố có chữ số; d) Tổng chữ số số nguyên tố 𝑆 cho trước Ví dụ hình vuông với 𝑆 = 11 1 0 3 3 1 3 http://www.ptit.edu.vn Ví dụ Bước 1: Tìm tập số nguyên tố sau 𝑋 = * 𝑥,10001, … , 99999- | 𝑥 𝑙à 𝑛𝑔𝑢𝑦ê𝑛 𝑡ố 𝑣à 𝑡ổ𝑛𝑔 𝑐á𝑐 𝑐ℎữ 𝑠ố 𝑙à 𝑆+ Bước 2: Thực chiến lược vét cạn sau: o o o o o o o Lấy 𝑥 ∈ 𝑋 đặt vào hàng (H1): ta điền ô vuông 1, 2, 3, 4, Lấy 𝑥 ∈ 𝑋 có số trùng với ô số đặt vào cột (C1): ta điền ô vuông 6, 7, 8, Lấy 𝑥 ∈ 𝑋 có số trùng với ô số 9, số cuối trùng với ô số đặt vào đường chéo (D2): ta điền ô vuông 10, 11, 12 Lấy 𝑥 ∈ 𝑋 có số thứ số thứ trùng với ô số 12 đặt vào hàng (H2): ta điền ô vuông 13, 14, 15 Lấy 𝑥 ∈ 𝑋 có số thứ nhất, thứ hai, thứ trùng với ô số 2, 13, 10 đặt vào cột (C2): ta điền ô vuông 16, 17 Làm tương tự ta, ta điền vào hàng ô số 25 Cuối ta cần kiểm tra 𝐷1 ∈ 𝑋 C5 ∈ 𝑋? http://www.ptit.edu.vn Ví dụ Thứ tự điền số 1 1 5 0 3 13 14 12 15 16 11 18 19 10 20 22 23 3 17 21 24 25 http://www.ptit.edu.vn Nội dung  Giới thiệu toán  Phương pháp sinh  Phương pháp quay lui  Bài tập http://www.ptit.edu.vn Thuật toán sinh (1/2) Thuật toán sinh dùng để giải lớp toán thỏa mãn hai điều kiện:  o Xác định thứ tự tập cấu hình cần liệt kê toán Biết cấu hình đầu tiên, biết cấu hình cuối o Từ cấu hình, ta xây dựng thuật toán sinh cấu hình đứng sau theo thứ tự http://www.ptit.edu.vn Thuật toán sinh (2/2) Bước1 (Khởi tạo): ; Bước (Bước lặp): while () { ; ; } ; http://www.ptit.edu.vn Ví dụ  Bài toán: Liệt kê (duyệt) xâu nhị phân có độ dài 𝑛 Xâu 𝑋 = (𝑥1𝑥2 𝑥𝑛): 𝑥𝑖 = 0, 1; 𝑖 = 1, 2, , 𝑛 gọi xâu nhị phân có độ dài 𝑛 Ví dụ với 𝑛 = 4, ta có 16 xâu nhị phân đây: 10 STT X =(x1 xn) F(X) STT X =(x1 xn) F(X) 0000 1000 0001 10 1001 0010 11 1010 10 0011 12 1011 11 0100 13 1100 12 0101 14 1101 13 0110 15 1110 14 0111 16 1111 15 http://www.ptit.edu.vn Thuật toán quay lui (2/2) Back_Track (int i ) { for ( j =; j

Ngày đăng: 27/08/2017, 16:17

TỪ KHÓA LIÊN QUAN