TIỂU LUẬN CHỦ đề tìm HIỂU THUẬT TOÁN, THUẬT TOÁN đệ QUY và THUẬT TOÁN KHÔNG đệ QUY

30 13 0
TIỂU LUẬN CHỦ đề tìm HIỂU THUẬT TOÁN, THUẬT TOÁN đệ QUY và THUẬT TOÁN KHÔNG đệ QUY

Đ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

1 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC SƯ PHẠM  BÀI TIỂU LUẬN CHỦ ĐỀ TÌM HIỂU THUẬT TOÁN, THUẬT TOÁN ĐỆ QUY VÀ THUẬT TOÁN KHÔNG ĐỆ QUY Giảng viên hướng dẫn Nguyễn Văn Trường 2 Thái Nguyên, tháng 10[.]

1 ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC SƯ PHẠM - - BÀI TIỂU LUẬN CHỦ ĐỀ: TÌM HIỂU THUẬT TỐN, THUẬT TỐN ĐỆ QUY VÀ THUẬT TỐN KHƠNG ĐỆ QUY Giảng viên hướng dẫn: Nguyễn Văn Trường Thái Nguyên, tháng 10/2022 DANH SÁCH THÀNH VIÊN NHÓM STT HỌ TÊN MÃ SINH VIÊN 10 CHỨC DANH NHIỆM VỤ Mục lục I LỜI MỞ ĐẦU II PHẦN MỞ ĐẦU Lý chọn đề tài Mục tiêu đề tài Đối tượng nghiên cứu Nhiệm vụ nghiên cứu Phương pháp nghiên cứu .9 III PHẦN NỘI DUNG CHƯƠNG I THUẬT TOÁN 10 Khái niệm 10 Đặc trưng thuật toán 10 Các kiểu biểu diễn thuật toán .14 Áp dụng thuật tốn vào chương trình giáo dục phổ thơng .17 CHƯƠNG II THUẬT TỐN ĐỆ QUY .17 Áp dụng thuật tốn đệ quy vào chương trình giáo dục phổ thơng 22 CHƯƠNG III THUẬT TỐN KHỬ ĐỆ QUY 24 IV PHẦN KẾT LUẬN 29 DANH SÁCH CÁC TỪ VIẾT TẮT LỜI MỞ ĐẦU Cấu trúc liệu (CTDL) giải thuật mơn học đóng vai trị quan trọng trình đào tạo cử nhân ngành khoa học máy tính cơng nghệ thơng tin Bài tiểu luận viết dựa sở giáo trình “Cấu trúc liệu giải thuật” Chủ đề lần thảo luận chúng em tìm hiểu Thuật tốn, thuật tốn đệ quy thuật khử đệ quy Bài thảo luận gồm phần: Phần mở đầu, phần nội dung, phần kết luận Nội dung thảo luận trình bày sau phần giúp bạn hiểu sâu sắc thuật toán, thuật toán đệ quy giải thuật liên quan tới nó.Trong đề tài chúng tơi trình bày gồm có chương.Mỗi chương chúng em cố gắng trình bày ngắn gọn, trực tiếp vào chất vấn đề, đồng thời sử dụng cài đặt tất chương trình ngơn ngữ lập trình C++,hy vọng mang lại gần gũi, dễ hiểu cho sinh viên,mong thực giúp ích cho bạn q trình nghiên cứu đệ quy.  Ở phần nội dung thảo luận gồm chương:  Chương 1: Trình bày khái niệm thuật tốn, tính chất thuật toán, biểu diễn thuật toán Đưa kiểu liệu giải thích độ phức tạp thuật tốn  Chương 2: Trình bày khái niệm thuật tốn đệ quy, ý tưởng, ví dụ, độ phức tạp thuật tốn đệ quy chương trình cài đặt  Chương 3: Trình bày khái niệm thuật tốn đệ quy, ý tưởng, ví dụ, độ phức tạp thuật tốn khử đệ quy chương trình cài đặt Bài thảo luận giúp người nâng cao kiến thức Tin học Bài thảo luận chắn khơng tránh khỏi thiếu sót, chúng em chân thành mong nhận ý kiến đóng góp thầy Nhóm tác giả PHẦN MỞ ĐẦU Lý chọn đề tài Đối với lập trình viên, việc học thuật tốn sử dụng chúng cách giúp bạn giải vấn đề cách dễ dàng, xác thời gian ngắn Vì thuật tốn phần quan trọng thiếu môn “Cấu trúc liệu giải thuật” Chúng em chọn đề tài tính quan trọng thuật tốn nêu trên, giúp người hiểu Đệ quy khơng giúp người lập trình giải tốt tốn mà cịn giúp nâng cao tư tốn, rèn luyện kỹ thuật lập trình.Tuy bên cạnh giải thuật đệ quy có giải thuật lặp đơn giản hữu hiệu,chẳng hạn giải thuật lặp tính n! đệ quy có vai trị xứng đáng nó, có tốn việc nghĩ lời giải đệ quy thuận lợi nhiều so với lời giải lặp có giải thuật đệ quy thật có hiệu lực cao Mục tiêu đề tài Giúp người hiểu thuật toán, cụ thể thuật toán đệ quy thuật toán khử đệ quy Cũng tìm hiểu ý tưởng thuật tốn, cách cài đặt, ví dụ độ phức tạp thuật toán Nghiên cứu phục vụ cho việc học tập môn CTDL>, tập lớn cho nhóm Đối tượng nghiên cứu Đối tượng nghiên cứu bao gồm:  Thuật toán  Thuật toán đệ quy  Thuật toán khử đệ quy Nhiệm vụ nghiên cứu Việc nghiên cứu thuật tốn đóng vai trị quan trọng khoa học máy tính máy tính giải tốn có hướng dẫn giải rõ ràng đắn Nếu giải thuật sai bước mập mờ, không rõ ràng dẫn đến việc không giải dược yêu cầu mà toán đặt Phương pháp nghiên cứu Chúng em sử dụng phương pháp nghiên cứu tài liệu, phân tích để tổng hợp lại kiến thức cách cô đọng để người tiếp cận Chúng em sử dụng kiến thức mơn Tốn rời rạc (cụ thể phần “quy nạp”) để áp dụng vào số toán sử dụng thuật toán đệ quy 10 PHẦN NỘI DUNG CHƯƠNG I THUẬT TOÁN Khái niệm Thuật tốn tiếng Anh có nghĩa Algorithms, khái niệm đề cập đến trình sử dụng để xử lý, tính tốn hay giải vấn đề Khái niệm thuật tốn vốn sử dụng rộng rãi lĩnh vực công nghệ, tốn học, ngành khoa học máy tính hay chí kinh doanh marketing, tuỳ thuộc vào điều kiện cụ thể, thuật toán ứng dụng theo cách khác Trong tin học, thuật toán hệ thống chặt chẽ rõ ràng quy tắc nhằm xác định dãy thao tác đối tượng, cho sau số hữu hạn bước thực thao tác, ta đạt mục tiêu định trước Đặc trưng thuật toán Thuật toán đặc trưng yếu tố, bao gồm:  Tính xác định Tính xác định thuật toán thể chỗ: Các thuật toán thực số bước cố định kết thúc với trạng thái chấp nhận từ chối với kết Ở bước thuật toán thao tác phải rõ ràng, khơng gây nhầm lẫn, lẫn lộn,… Những thuật tốn có kết ngẫu nhiên gọi khơng xác định Ví dụ đoạn chương trình tính xác định: function is_odd(n): if n mod = then return true else return false 16  Đường đi: Đường biểu diễn mũi tên, hướng Ví dụ:  Mã giả Mọi ngơn ngữ lập trình có thao tác xử lý, rẽ nhánh lặp Dùng mã giả vừa tận dụng khái niệm ngơn ngữ lập trình, vừa giúp người cài đặt dễ dàng nắm bắt nội dung thuật toán Tất nhiên mã giả ta dùng phần ngơn ngữ tự nhiên Ví dụ: if Delta > 0 then begin 17 x1=(-b-sqrt(delta))/(2*a) x2=(-b+sqrt(delta))/(2*a) xuất kết : phương trình có hai nghiệm x1 và x2 end else if delta = 0 then xuất kết : phương trình có nghiệm kép -b/(2*a) else {trường hợp delta < } xuất kết : phương trình vơ nghiệm  Ngơn ngữ lập trình Vì ngơn ngữ lập trình có ngữ nghĩa quy định rõ ràng, nên cho chép biểu diễn giải thật tốn cách xác Bài thảo luận sử dụng ngơn ngữ lập trình C++ để biểu diễn thuật toán Áp dụng thuật toán vào chương trình giáo dục phổ thơng CHƯƠNG TRÌNH GIÁO DỤC PHỔ THƠNG MƠN TIN HỌC (Ban hành kèm theo Thơng tư số 32/2018/TT-BGDĐT ngày 26 tháng 12 năm 2018 Bộ trưởng Bộ Giáo dục Đào tạo) Chương trình môn Tin học cấp trung học phổ thông thể phân hoá sâu định hướng nghề nghiệp Do vậy, chương trình có u cầu cần đạt chung lực tin học bắt buộc học sinh có yêu cầu bổ sung riêng tương ứng với học sinh chọn định hướng Tin học ứng dụng Khoa học máy tính Giúp học sinh có hiểu biết hệ thống máy tính, số kĩ thuật thiết kế thuật tốn, tổ chức liệu lập trình; củng cố phát triển cho học sinh tư giải vấn đề, khả đưa ý tưởng chuyển giao nhiệm vụ cho máy tính thực 18 CHƯƠNG II THUẬT TOÁN ĐỆ QUY Tổng quan thuật toán đệ quy Đệ quy (Recursion) giải thuật quen thuộc lập trình, hay rộng toán học (thường gọi với tên khác “quy nạp”) Có số toán, bắt buộc người giải phải sử dụng đệ quy giải được, chẳng hạn duyệt Mô tả đệ quy hiểu đối tượng mơ tả thơng qua Một tốn mang tính chất đệ quy phân thành toán nhỏ mang tính chất với tốn ban đầu Các toán nhỏ lại phân thành tốn nhỏ theo tính chất Để tránh việc lặp vô tận cài đặt TTĐQ, hàm đệ quy cần có tính dừng: Nếu gặp điều kiện đó, cần phải dừng lại việc tự gọi lại Một số tốn thuật tốn đệ quy Bài 1: Tìm phần tử Fibonacci (bài toán Fibonacci) Ý tưởng: Số dãy số tính cách cộng số trước với F(n) = n ≤ 2; F(n) = F(n-1) + F(n-2) n > Biểu diễn: long fibo(int n) { if (n ==0 || n == 1) return 1; return fibo(n-1) + fibo(n-2); } 19 Cài đặt chương trình: Kèm link driver cuối Ví dụ: Chúng ta diễn giải cách chạy hàm đệ quy toán Fibonancci qua bước: Bước 1: Nếu n = 0, n = 1; giá trị fibo(int n) trả Bước 2: Khơng giá trị fibo (int n) gọi tổng giá trị số vị trí (n-1) + số vị trí (n-2) Hàm fibo() có điều kiện dừng n = 0, n =1 Độ phức tạp: Bài 2: Tính giai thừa thuật tốn đệ quy Ý tưởng: Giai thừa số số nhân với số trước n! = n(n-1)! n > 0; 0! = Biểu diễn: long giaithua(int n) { if (n ==0 ) return 1; return n* giaithua(n-1); } Cài đặt chương trình: Kèm link driver cuối Ví dụ: Chúng ta diễn giải cách chạy hàm đệ quy tốn tính giai thừa qua bước: Bước 1: Nếu n = 0; giá trị giaithua(int n) trả 20 Bước 2: Khơng giá trị giaithua(int n) ln gọi trả giá trị số n * giaithua(n-1) Hàm giaithua() có điều kiện dừng n =1 Độ phức tạp: Bài 3: Tính số mũ số thuật toán đệ quy Ý tưởng: Số mũ n số n lần số nhân với n0 = n1 = n nn = n*n(n-1) Biểu diễn: int somu(int n,int k) { if (n ==0 ) return 1; if (n ==1) return n; return n* somu(n,k-1); } Cài đặt chương trình: Kèm link driver cuối Ví dụ: Chúng ta diễn giải cách chạy hàm đệ quy tốn tính số mũ qua bước: Bước 1: Nếu n = 0; giá trị somu(int n,int k) trả Bước 2: Nếu n = 1; giá trị somu(int n,int k) trả n Bước 3: Khơng giá trị somu(int n,int k) ln trả giá trị số n*somu(n,k-1) Hàm somu() có điều kiện dừng n=0, n =1 ... nghệ thơng tin Bài tiểu luận viết dựa sở giáo trình “Cấu trúc liệu giải thuật? ?? Chủ đề lần thảo luận chúng em tìm hiểu Thuật toán, thuật toán đệ quy thuật khử đệ quy Bài thảo luận gồm phần: Phần... trưng thuật toán 10 Các kiểu biểu diễn thuật toán .14 Áp dụng thuật tốn vào chương trình giáo dục phổ thơng .17 CHƯƠNG II THUẬT TOÁN ĐỆ QUY .17 Áp dụng thuật tốn đệ quy vào... mở đầu, phần nội dung, phần kết luận Nội dung thảo luận trình bày sau phần giúp bạn hiểu sâu sắc thuật toán, thuật toán đệ quy giải thuật liên quan tới nó.Trong đề tài chúng tơi trình bày gồm

Ngày đăng: 09/11/2022, 03:49

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

Tài liệu liên quan