một số vấn đề cơ sở của tin học

52 355 0
một số vấn đề cơ sở của tin học

Đ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

Buổi 3: Cấu trúc dữ liệu vàthuật giải Giáo viên: Tạ Thúc Nhu Khoa CNTT trường ĐH Lạc Hồng Một số vấn đề cơ sở của Tin học Mã hó a 2 ĐỆ QUI RECURVE Mã hó a 3 Khái niệm Đệ Qui Khái niệm Đệ Qui Một đối tượng được gọi là đệ qui nếu nóhoặc 1 phần của nó được định nghiã thông qua khái niệm về chính nó. Vídụ: Định nghiã phép toán giai thừa, ký hiệu: N! • (a) Nếu N = 0, thìN! = 1 • (b) nếu N > 0 thìN! = N*(N-1)! Vídụ: Định nghiã UCLN của 2 số x vày, ký hiệu: UCLN(x, y) • (a)UCLN(x,y) = x nếu y = 0 • (b)UCLN(x,y) = UCLN(y, phần dư của x/y) nếu y<>0 Mã hó a 4 Chương trình đệ qui Chương trình đệ qui • Một chương trình là đệ qui nếu trong chương trình cólời gọi đến chính nó. Vídụ: Định nghĩa hàm tính N! theo đệ qui. int GiaiThua(int N) { if (N == 0) return 1; return N * GiaiThua(N -1); } Mã hó a 5 Một định nghiã đệ qui phải có2 thành phần: Một định nghiã đệ qui phải có2 thành phần: • Thành phần dừng: Không chứa khái niệm đang định nghiã Vídụ: N! = 1 • Thành phần đệ qui: cóchứa khái niệm đang định nghiã Mã hó a 6 Vídụ: Tính UCLN(x,y) theo thuật toán Euclide • (a)UCLN(x,y) = x nếu y = 0 • (b)UCLN(x,y) = UCLN(y, phần dư của x/y) nếu y<>0 int UCLN(int x, int y) { if (y == 0) return x; return UCLN(y, x % y); } Mã hó a 7 THUẬT GIẢI QUAY LUI BACK TRACKING Mã hó a 8 Tổng quan thuật giải Quay lui (Back Tracking) Tổng quan thuật giải Quay lui (Back Tracking) • Dùng giải bài toán liệt kê các cấu hình • Mỗi cấu hình được xác định bằng cách xây dựng tuần tự từng thành phần trong cấu hình. • Mỗi thành phần được xác định bằng cách chọn lựa dữ liệu trong tập khả năng được đề xuất. Xn…X3X2X1 Km……K2K1Tập khả năng Cấu hình một lời giải Mã hó a 9 Mô hình thuật giải quay lui: Xác định phần tử X i bằng đệ quy Mô hình thuật giải quay lui: Xác định phần tử X i bằng đệ quy void Try( int i ) { If (X i làphần tử cuối cùng trong cấu hình) < Thông báo cấu hình tìm được>; else for ( mọi Kj thuộc tập khả năng đề cử cho X i ) [ if ( Chấp nhận Kj ) ] { Thử chọn Kj cho Xi; Try( i+1); //Gọi đệ quy để xác định phần tử X i+1 Bỏ ghi nhận Kj đã chọn cho Xi để chọn khả năng khác; } } Mã hó a 10 Hai điểm mấu chốt quyết định độ phức tạp của bài toán là: 1. Xác định tập khả năng đề cử: Phụ thuộc vào việc phân tích nhu cầu dữ liệu của từng thành phần trong cấu hình 2. Kiểm tra khả năng đề cử phải phùhợp với thành phần cần xác định. [...]... nhận số lượng số 3 trong chuỗi X[1 i] • Mảng T[1 n] ghi nhận số lượng số 3 tại mỗi bước • T[i] chứa số lượng số 3 trong chuỗi X[1 i ] • Nếu giá trị đề cử là 3 thì T[i] = T[i-1] +1, ngược lại thì T[i] = T[i-1] 33 Mã hóa 3- Dự đoán cấu hình lời giải tốt hơn hay xấu hơn BESTCONFIG 131213212 Do 2 chuỗi con kề phải khác nhau nên: 131213212 • Trong 4 số liên tiếp phải có một số 3 131213212 • Do đó, một dãy... Tìm một chuỗi có độ dài n (n n ) ; else for (int j = 1; j . trường ĐH Lạc Hồng Một số vấn đề cơ sở của Tin học Mã hó a 2 ĐỆ QUI RECURVE Mã hó a 3 Khái niệm Đệ Qui Khái niệm Đệ Qui Một đối tượng được gọi là đệ qui nếu nóhoặc 1 phần của nó được định nghiã. hó a 14 Bài toán: Liệt kê các hoán vị của dãy số {1, 2, , n} Bài toán: Liệt kê các hoán vị của dãy số {1, 2, , n} • Biểu diễn cấu hình một hoán vị: X[1 n] • Tập khả năng đề cử: { 1, 2, , n } • Nhưng do. quyết định độ phức tạp của bài toán là: 1. Xác định tập khả năng đề cử: Phụ thuộc vào việc phân tích nhu cầu dữ liệu của từng thành phần trong cấu hình 2. Kiểm tra khả năng đề cử phải phùhợp với

Ngày đăng: 20/04/2015, 17:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan