Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọc

30 82 0
Bài giảng Tin học đại cương: Phần 2 (Chương 1) - TS.Nguyễn Bá Ngọ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

Nối tiếp phần 1 bộ bài giảng Tin học đại cương mời các bạn cùng tìm hiểu phần 2 (Chương 1) với các nội dung chính như: Giải quyết bài toán bằng máy tính: Khái niệm về bài toán; quá trình giải quyết bài toán bằng máy tính; các phương pháp giải quyết bài toán bằng máy tính; phân loại bài toán;...

IT1110 Tin học đại cương Phần II Giải quyết bài tốn Nguyễn Bá Ngọc Ơn tập nội dung phần I  Phần I: TIN HỌC CĂN BẢN     Thơng tin Biểu diễn dữ liệu trong máy tính Máy tính và mạng máy tính Hệ điều hành và các hệ thống ứng dụng Nội dung phần II  Chương 1: Giải quyết bài tốn bằng máy tính      Khái niệm về bài tốn Q trình giải quyết bài tốn bằng máy tính Các phương pháp giải quyết bài tốn bằng máy tính Phân loại bài tốn Chương 2: Thuật tốn      Định nghĩa thuật tốn Biểu diễn thuật tốn Một số thuật tốn thơng dụng Thuật tốn đệ quy Thuật giải heuristic Nội dung phần II  Chương 1: Giải quyết bài tốn bằng máy tính      Khái niệm về bài tốn Q trình giải quyết bài tốn bằng máy tính Các phương pháp giải quyết bài tốn bằng máy tính Phân loại bài tốn Chương 2: Thuật tốn      Định nghĩa thuật tốn Biểu diễn thuật tốn Một số thuật tốn thơng dụng Thuật toán đệ quy Thuật giải heuristic 1.1. Khái niệm về vấn đề và bài toán   Vấn đề rộng hơn bài toán? Pitago chia vấn đề ra:    Theorema là vấn đề cần được khẳng định đúng­sai Problema là vấn đề cần tìm giải pháp để đạt được một  mục tiêu xác định từ những điều kiện ban đầu Diễn đạt bằng sơ đồ: A   B    A là giả thiết, điều kiện ban đầu B là kết luận, mục tiêu cần đạt  là suy luận, giải pháp cần xác định 1.2. Các bước giải quyết bài tốn bằng  máy tính       Bước 1: Xác định vấn đề­bài tốn Bước 2: Lựa chọn phương pháp giải Bước 3: Xây dựng thuật tốn hoặc thuật  giải Bước 4: Cài đặt chương trình Bước 5: Hiệu chỉnh chương trình Bước 6: Thực hiện chương trình 1.3. Các phương pháp giải quyết vấn đề  bằng máy tính  Giải quyết vấn đề theo hướng xác định trực tiếp  lời giải   xác định trực tiếp lời giải qua thủ tục tính tốn hoặc thủ  tục bao gồm một số hữu hạn các thao tác sơ cấp Giải quyết vấn đề theo hướng tìm kiếm lời giải   nguyên lý "thử và sai" các phương pháp     liệt kê hay vét cạn thử ngẫu nhiên quay lui chia để trị 1.4. Phân loại bài tốn    Bài tốn đa thức Bài tốn khơng đa thức NP Problems Nội dung phần II  Chương 1: Giải quyết bài tốn bằng máy tính      Khái niệm về bài tốn Q trình giải quyết bài tốn bằng máy tính Các phương pháp giải quyết bài tốn bằng máy tính Phân loại bài tốn Chương 2: Thuật tốn      Định nghĩa thuật tốn Biểu diễn thuật tốn Một số thuật tốn thơng dụng Thuật tốn đệ quy Thuật giải heuristic 2.1. Định nghĩa thuật tốn    Là một khái niệm cơ sở của tốn học và tin  học Bao gồm một dãy hữu hạn các lệnh/chỉ thị  rõ ràng và có thể thi hành được để hướng  dẫn thực hiện một hành động nhằm đạt  được mục tiêu đề ra Thuật tốn là sự thể hiện của một phương  pháp để giải quyết một vấn đề 10 Ngơn ngữ lưu đồ (2)  Nút điều kiện: là một hình thoi có ghi điều kiện  cần kiểm tra, thường có 1 cung đi vào và 2 cung đi  ra (tương ứng với 2 trường hợp đúng/sai) Đúng  a0 x1 = (­b­sqrt(Δ))/(2*a) x2 = (­b+sqrt(Δ))/(2*a) Xuất: phương trình  có 2 nghiệm x1, x2 sai Δ=0 sai x=­b/(2a) Xuất: phương trình  có nghiệm kép x Kết thúc Xuấtphương  trình vơ  nghiệm 17 Mã giả    Sử dụng mệnh đề có cấu trúc chuẩn hóa và  vẫn dùng ngơn ngữ tự nhiên Sử dụng các ký hiệu tốn học, các biến,  cấu trúc kiểu thủ tục Hành động gán:    i  i+1 Tiện lợi, đơn giản, vẫn dễ hiểu 18 Mã giả (2)  Các cấu trúc thường gặp:  Cấu trúc chọn: if (điều kiện) then (hành động) end if  if (điều kiện) then (hành động 1)    else (hành động 2)    end if   Cấu trúc lặp      while (điều kiện) do (hành động) end while repeat (hành động) until (điều kiện)  for (biến)=(giá trị đầu) to (giá trị cuối) do (hành động) end for for (biến)=(giá trị cuối) downto (giá trị đầu) do (hành động) end  for Cấu trúc nhảy  goto nhãn x; 19 Ví dụ: thuật tốn giải phương trình bậc 2               Nhập: các hệ số a, b, c Xuất: kết luận về nghiệm của phương trình bậc hai Thuật tốn: if a = 0 then  Xuất: Khơng phải phương trình bậc hai, Dừng      end if delta  b*b­4*a*c if delta > 0 then x1  (­b­sqrt(Δ))/(2*a) x2  (­b+sqrt(Δ))/(2*a) Xuất: x1 và x2, Dừng else if delta = 0 then x12   ­b/(2*a), Xuất: nghiệm kép x12 else Xuất: phương trình vơ nghiệm  end if 20 2.3. Một số thuật tốn thơng dụng      Thuật tốn kiểm tra số ngun tố Thuật tốn tìm USCLN, BSCNN của 2 số  ngun Thuật tốn tìm phần tử lớn nhất trong một  dãy Thuật tốn sắp xếp Thuật tốn tìm kiếm 21 Tìm phần tử lớn nhất trong một dãy hữu hạn số Nhập: dãy số a[1], a[2], a[3],… a[n]  Xuất: max là giá trị lớn nhất trong dãy số đã cho  Thuật toán: max  a[1] for i = 2 to n do if max 0 Định nghĩa dãy số Fibonacci: 1, 1, 2, 3, 5, 8, 13,  f1 = 1,  f2 = 1,  fn = fn­1 + fn­2 23 Thuật tốn đệ quy (2)  Thuật tốn đệ quy tính giai thừa của 1 số tự  nhiên:    Input: số tự nhiên n Output: F(n) bằng n! Thuật giải: 1. if n=0 then F  1 2. if n>0 then F  F(n­1)*n 3. Output F 24 Thuật tốn đệ quy (3)  Thuật tốn đệ quy tính số hạng thứ n của  dãy số Fibonacci:    Input: số tự nhiên n Output: F(n) bằng số hạng thứ n của dãy Thuật giải: 1. if n=1 or n=2 then F  1 2. if n>2 then F  F(n­1)+F(n­2) 3. Output F 25 Thuật toán đệ quy (4)  Đặc điểm của thuật toán đệ quy:    Có 1 trường hợp cơ sở/trường hợp dừng Có phần đệ quy bên trong thuật tốn (nó gọi  đến chính nó) Có sự biến đổi tiến tới trường hợp cơ sở 26 Bài tập      Viết thuật tốn tìm USCLN của hai số tự  nhiên Viết thuật tốn tìm BSCNN của hai số tự  nhiên Viết thuật tốn tìm phần tử lớn nhất trong  một dãy số hữu hạn Viết thuật tốn sắp xếp Viết thuật tốn tìm kiếm 27 2.5. Thuật giải heuristic    Thường tìm được lời giải tốt (những chưa  chắc đã tốt nhất) Dễ dàng và nhanh chóng hơn so với giải  thuật tối ưu Thể hiện một cách hành động khá tự nhiên,  gần gũi với suy nghĩ và hành động của con  người 28 Thuật giải heuristic (2)  Các ngun lý    Ngun lý vét cạn thơng minh: trong bài tốn tìm kiếm  khi khơng gian tìm kiếm lớn => giới hạn khơng gian tìm  kiếm hoặc thực hiện dò tìm đặc biệt dựa vào đặc thù  của bài tốn để nhanh chóng tìm ra mục tiêu Ngun lý tham lam: lấy tiêu chuẩn tối ưu tồn cục làm  tiêu chuẩn chọn lựa hành động cục bộ của từng bước  trong q trình tìm kiếm lời giải Ngun lý thứ tự: thực hiện hành động theo thứ tự hợp  lý của khơng gian khảo sát nhằm nhanh chóng đạt  được một lời giải tốt.  29 30 ... x1  (­b­sqrt(Δ))/ (2* a) x2  (­b+sqrt(Δ))/ (2* a) Xuất: x1 và x2, Dừng else if delta = 0 then x 12   ­b/ (2* a), Xuất: nghiệm kép x 12 else Xuất: phương trình vơ nghiệm  end if 20 2. 3. Một số thuật tốn thơng dụng... 1.4. Phân loại bài toán    Bài tốn đa thức Bài tốn khơng đa thức NP Problems Nội dung phần II  Chương 1: Giải quyết bài tốn bằng máy tính      Khái niệm về bài tốn Q trình giải quyết bài tốn bằng máy tính... phương trình bậc 2 Bắt đầu Nhập a, b, c sai Xuất: : Khơng  phải  phương trình bậc  a đúng Δ = b2 ­ 4ac Δ>0 x1 = (­b­sqrt(Δ))/ (2* a) x2 = (­b+sqrt(Δ))/ (2* a) Xuất: phương trình  có 2 nghiệm x1, x2 sai Δ=0

Ngày đăng: 30/01/2020, 14:42

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

Tài liệu liên quan