Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 14 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
14
Dung lượng
1,49 MB
Nội dung
MỤC LỤC NỘI DUNG .1 PHẦN I: MỘT SỐ THUẬTTOÁN CƠ BẢN .1 Thuậttoán Biễu diễn thuậttoánPhần II: BÀITOÁNTÌMKIẾMĐánhgiá hiệu thuậttoán Giải thuậttìmkiếm .8 PHẦN III: BÀITOÁN ÁP DỤNG 11 1.Phát biểu toán .11 TÀI LIỆU THAM KHẢO 14 NỘI DUNG PHẦN I: MỘT SỐ THUẬTTOÁN CƠ BẢN Việc sử dụng máy tính điện tử để giải toán thường hiểu cách không đầy đủ Nhiều người cho việc lập trình túy Thực ra, giải toán máy tính điện tử trình phức tạp, bao gồm nhiều giai đoạn phát triển, mà lập trình giai đoạn Ta xét toán giải hệ phương trình đại số tuyến tính máy tính Đây tập quen thuộc sinh viên chuyên ngành kỹ thuật Với đầu vào vậy, không sinh viên cho việc nhất, viết chương trình Về mặt lý thuyết, toán học giải đầy đủ: từ phát biểu toán, thuậttoán xây dựng phântích nghiệm hệ phương trình trường hợp khác Nhưng viết chương trình máy tính để giải toán có số vấn đề phải làm rõ Thậm chí có vấn đề gặp phải từ viết dòng chương trình kích thước hệ phương trình chẳng hạn Số ẩn số phương trình tối đa bao nhiêu? Nếu để ý tiếp ta thấy số thông tin mà người lập trình phải biết như: Số ẩn số phương trình có hay không? Trong trường hợp hệ có nhiều nghiệm phải viết nghiệm nghiệm nào? Dữ liệu hệ số phương trình nhập từ tệp hay từ bàn phím? Giá trị hệ số có lớn, nhỏ không? Như vậy, rõ ràng với toán, người lập trình cần có đầy đủ thông tin yêu cầu chi tiết đầu liên quan đến giới hạn nhớ, giới hạn hình, giới hạn thời gian giới hạn sai số Trong số trường hợp thông tin xác định đầu nhiều trường hợp phải qua trình phântích làm rõ thông tin Người lập trình phải giải vấn đề, toán máy tính cần phải thực bước quan trọng, phântíchtoán Việc phântích đầu nhằm làm rõ số thông tin: a) Yêu cầu toán: Bàitoán đòi hỏi giải máy tính Nếu giải vấn đề máy tính có gặp khó khăn nhớ, thời gian tín, cách giải quyết? b) Dữ liệu đầu vào liệu đầu toán nào? c) Với cách giải lựa chọn có sẵn thuậttoán hỗ trợ hay không? Trả lời số câu hỏi người lập trình viết chương trình đáp ứng yêu cầu đề toánThuậttoánThuậttoán liệt kê dẫn, quy tắc cần thực theo bước xác định nhằm giải toán cho khoảng thời gian hữu hạn Ví dụ 1: Tìm số lớn dãy hữu hạn số nguyên Thuật toán: 1) Đặt giá trị cực đại tạm thời số nguyên dãy 2) So sánh số nguyên với giá trị cực đại tạm thời, lớn giá trị cực đại tạm thời đặt giá trị cực đại tạm thời số nguyên 3) Lặp lại bước 2) số nguyên dãy 4) Giá trị cực đại tạm thời thời điểm số nguyên lớn dãy Trên dẫn cụ thể bước thể ngôn ngữ thông thường Chúng ta tìm cách thể lại thuậttoán giải toán theo cách thức khác: - Dữ liệu vào (input): A mảng chứa n số nguyên Dữ liệu (output): max, số lớn mảng A Procedure Tim_max (A: mảng có n số nguyên); a) Đặt max:= A (1); b) Xét từ i = đến n Nếu max < A (i) đặt max:=A(i); Bảng mô tả thuậttoán có yếu tố: a) Tính xác định: Các bước thuậttoán phải xác định cách xác, dẫn phải rõ ràng, thực b) Tính hữu hạn: Thuậttoán phải kết thúc sau số hữu hạn bước c) Tính đắn: Thuậttoán phải cho kết theo yêu cầu toán đặt d) Tính tổng quát: Thuậttoán phải áp dụng cho toán loại, với liệu đầu vào mô tả Khi mô tả thuậttoán cần đảm bảo yếu tố sau đây: - Dữ liệu đầu vào: Một thuậttoán phải mô tả rõ giá trị đầu vào từ tập hợp liệu xác định Ví dụ, dãy số nguyên a(1), a(2),…,a(n), với n