SỬ DỤNG THUẬT TOÁN QUAY LUI để GIẢI các DẠNG bài TOÁN LIỆT kê BẰNG PHƯƠNG PHÁP vét cạn TRONG ôn LUYỆN học SINH GIỎI môn TIN học

23 15 0
SỬ DỤNG THUẬT TOÁN QUAY LUI để GIẢI các DẠNG bài TOÁN LIỆT kê BẰNG PHƯƠNG PHÁP vét cạn TRONG ôn LUYỆN học SINH GIỎI môn 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

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRƯỜNG THPT QUẢNG XƯƠNG SÁNG KIẾN KINH NGHIỆM SỬ DỤNG THUẬT TOÁN QUAY LUI ĐỂ GIẢI CÁC DẠNG BÀI TOÁN LIỆT KÊ BẰNG PHƯƠNG PHÁP VÉT CẠN TRONG ÔN LUYỆN HỌC SINH GIỎI MÔN TIN HỌC Người thực hiện: Phạm Văn Cường Chức vụ: Tổ trưởng SKKN thuộc môn: Tin học THANH HÓA NĂM 2021 MỤC LỤC A ĐẶT VẤN ĐỀ I Lý chọn đề tài II Thực trạng vấn đề .3 III Mục đích nghiên cứu .4 IV Đối tượng phạm vi nghiên cứu B GIẢI QUYẾT VẤN ĐỀ I Cơ sở lý luận .5 II Biện pháp giải vấn đề Một số khái niệm .5 Một số dạng tốn cấu hình tổ hợp Một số toán tham khảo .19 III Kết thực nghiệm 19 C KẾT LUẬN VÀ ĐỀ XUẤT 20 I Kết luận .20 II Đề xuất, kiến nghị 20 A ĐẶT VẤN ĐỀ I LÝ DO CHỌN ĐỀ TÀI Trong thời đại ngày nay, giới diễn trình tin học hóa nhiều lĩnh vực hoạt động xã hội Tin học phát triển nhanh vũ bão trở thành ngành khoa học đóng vai trị quan trọng khơng thể thiếu phát triển xã hội Nhiều quốc gia ý thức tầm quan trọng tin học có đầu tư lớn vào lĩnh vực đặc biệt lĩnh vực giáo dục nhằm đào tạo đội ngũ tri thức trẻ có tảng tin học vững vàng nhằm đáp ứng nhu cầu ngày cao xã hội Từ năm 2006 ngành giáo dục Việt Nam thức đưa mơn tin học vào trường THPT nhằm mục đích phổ cập kiến thức Tin học, ngồi cịn giúp học sinh có khả phân tích, tổng hợp, trừu tượng hóa, khái quát hóa vấn đề, đặc biệt phát triển khả tư Muốn việc dạy đại trà, hướng nghiệp dạy nghề cần tạo điều kiện cho học sinh có khiếu tin học phát triển khả lập trình để giải tốt tốn Để phát huy tài tin học thông qua ôn luyện đội tuyển học sinh giỏi, đòi hỏi người dạy phải tiếp cận với nhiều dạng tốn khó nắm vững phương pháp giải tốn Bài tốn tin học thường đa dạng phức tạp, toán có nhiều phương pháp giải khác Để lựa chọn phương pháp thích hợp cho tốn, phân chia tốn thành dạng toán tổng quan phương pháp giải cho dạng tốn Bài toán liệt kê lớp toán khó, thường xuất đề thi học sinh giỏi cấp thành phố, cấp tỉnh hay cấp quốc gia Có nhiều phương pháp giải lớp tốn phương pháp vét cạn phù hợp Chính nên tơi chọn đề tài: “Sử dụng thuật tốn quay lui để giải dạng toán liệt kê phương pháp vét cạn ôn luyện học sinh giỏi môn Tin học” II THỰC TRẠNG CỦA VẤN ĐỀ Thuận lợi Do quan tâm đầu tư Bộ giáo dục đào tạo nói chung trường THPT Quảng Xương nói riêng, sở vật chất mơn Tin học có phịng thực hành hoạt động tốt, ngồi cịn có số phòng máy chiếu projector hỗ trợ cho giáo viên công tác giảng dạy Mặc dù môn Tin môn trọng điểm Ban giám hiêu quan tâm động viên tạo điều kiện công tác giảng dạy ôn luyện đội tuyển học sinh giỏi công tác khác Trong q trình thực đề tài tơi giáo viên tổ môn tư vấn hỗ trợ nhiều giúp tơi hồn thành đề tài Khó khăn Ngơn ngữ lập trình Pascal mơn học mới, cách học hồn tồn mới, tiếp cận với mơn học đa số học sinh thấy bỡ ngỡ Học thao tác sử dụng hay dùng phương pháp học thuộc lịng khơng cịn phù hợp Lúc em cần phải học cách tư logic, tìm thuật tốn, viết dịng lệnh máy tính xác đến đấu chấm, dấu phẩy Với tâm lí thơng thường em học sinh coi tin học môn phụ không quan trọng nên nhiều em chủ quan không dành đủ thời gian để học nên không hiểu dần bị Đây lí mà nhiều em bị điểm kém, chí thi lại, học lại mơn tin học em học giỏi môn học khác Chính xem mơn Tin mơn phụ nên lựa chọn đội tuyển ôn thi học sinh giỏi giáo viên chúng tơi thường khó lựa chọn học sinh có khiếu thực Các dạng tốn liệt kê tốn khó, người học có tư chưa tốt người dạy khó khăn q trình truyền đạt để giúp em hiểu Kết thực trạng Trước vào nghiên cứu thực đề này, thường hướng dẫn học sinh tiếp cận với toán liệt kê cách cho tập cách giải với mà không phân chia thành dạng cụ thể thuật toán tổng quan cho dạng, dẫn đến học sinh mơ hồ, khó hiểu Kết khảo sát q trình giảng dạy thơng qua kiểm tra sau: N ội d u n g cầ n nắ m bắt Số lượng Hiểu kiến thức vừa học 3/6 Tự viết lại chương trình giới thiệu 3/6 Vận dụng kiến thức học để làm tốt 1/6 tập Tỉ lệ (%) 50% 50% 16,7% B GIẢI QUYẾT VẤN ĐỀ I CƠ SỞ LÝ LUẬN Bài tốn liệt kê (hay cịn gọi toán tổ hợp) toán cho trước tập đối tượng, yêu cầu cho biết có đối tượng thõa mãn điều kiện định rõ cấu hình tìm thõa mãn điều kiện Để giải toán liệt kê cần xác định thuật toán tổng quan để sở xây dựng tất cầu hình liên quan Khi vào giải toán liệt kê, yêu cầu cấu hình tìm khơng lặp lại khơng bỏ sót cầu hình Để đáp ứng u cầu phương pháp vét cạn lựa chọn thích hợp II BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ Một số khái niệm 1.1 Vét cạn Phương pháp vét cạn: phương pháp tìm nghiệm tốn cách xem xét tất phương án Đối với người, phương pháp không khả thi số phương án cần kiểm tra lớn, nhờ có máy tính mà nhiều tốn giải phương pháp *Ưu điểm: - Ln đảm bảo tìm nghiệm xác - Địi hỏi nhớ cài đặt đơn giản * Nhược điểm: Thời gian thực thi lớn, độ phức tạp thường bậc mũ 1.2 Quay lui (Backtracking) Trong nhiều trường hợp, nghiệm toán dãy phần tử xác định khơng theo luật tính tốn định Muốn tìm nghiệm, phải thực bước theo dõi, tìm kiếm phần tử nghiệm Giá trị phần tử có nhiều khả khác Để tìm giá trị gán cho phần tử, phải thử khả xem chúng có thõa mãn điều kiện tốn hay khơng gọi thử đúng/sai Nếu có lựa chọn chấp nhận ghi nhớ thơng tin cần thiết bước thử tiếp theo.Trái lại, khơng có lựa chọn thích hợp làm lại bước trước, xoá bớt ghi nhớ quay chu trình thử với lựa chọn cịn lại Hành động gọi quay lui (Back tracking) giải thuật thể phương pháp gọi giải thuật quay lui Tìm nghiệm (gọi vét cạn) cách tiến dần, tìm kiếm khả chấp nhận cho phần tử nghiệm biết quay lui tiến Khi phần tử nghiệm gán giá trị kết thúc trình tìm nghiệm, chuyển sang tìm nghiệm Do thuật tốn quay lui xây dựng sở tìm kiếm dần, kết sau hình thành từ kết trước nên sử dụng hàm thủ tục đệ quy để thực Có thể so sánh nghiệm tìm để tìm nghiệm tối ưu 1.3 Thuật tốn quay lui Mơ hình giải thuật quay lui mơ tả sau: Procedure Try (i); Begin Vòng lặp đề khả bước i Begin - Thử chọn đề cử cho bước i - Nếu đề cử thõa mãn điều kiện Begin + Lưu trạng thái tốn + Xác nhận giá trị đề cử cho bước i + Xác nhận trạng thái toán sau chấp nhận đề cử + Nếu bước cuối nghiệm tăng biến đếm nghiệm Ngược lại Try(i+1) +Trả lại trạng thái trước chấp nhận đề cử End; End; End; Hoặc viết dạng sau: Procedure Try (i); Begin +Nếu bước cuối nghiệm tăng biến đếm nghiệm Ngược lại vịng lặp đề khả bước i Begin - Thử chọn đề cử cho bước i - Nếu đề cử thõa mãn điều kiện Begin +Lưu trạng thái tốn +Xác nhận giá trị đề cử cho bước i +Xác nhận trạng thái toán sau chấp nhận đề cử +Try(i+1) +Trả lại trạng thái trước chấp nhận đề cử End; End; End; Giả mã cụ thể thuật toán sau: Procedure Update; Begin count := count + 1; print(x); end; Procedure Try(i); Var j; Begin For j:=1 to m If then Begin X[i]:=a[j]; ; If i=n then Update Else Try(i+1); ; End; End; Procedure Search; Begin Try(1); End; Trên thuật toán vét cạn toán tìm cấu hình hay đếm số cấu hình Trong trường hợp tốn cần tìm cấu hình, tìm cấu hình tối ưu thuật tốn tương tự, khác phần cập nhật (Update) sinh cấu hình Chẳng hạn thủ tục Update tốn tìm nghiệm tối ưu: procedure Update; begin If then best:=x; end; Ở không xét việc áp dụng phương pháp vét cạn sử dụng đệ quy quay lui dùng cho toán đơn mà tập trung vào tốn tìm cấu hình tổ hợp, tối ưu tổ hợp Một số dạng tốn cấu hình tổ hợp Bài tốn tổ hợp u cầu tìm đối tượng x có dạng vector thõa mãn điều kiện sau: x gồm n phần tử: x=(x1,x2,…,xn) Mỗi phần tử xi nhận tập đối tượng a1,a2,…,am, x thõa mãn ràng buộc cho hàm logic G(x) Tùy trường hợp tốn u cầu tìm nghiệm, tìm tất nghiệm hay đếm số nghiệm 2.1 Tổ hợp Một tổ hợp chập k n tập k phần tử tập n phần tử Chẳng hạn tập {1,2,3,4} có tổ hợp chập là: {1,2}, {1,3, {1,4, {2,3}, {2,4}, {3,4} Vì tập hợp phần tử khơng phân biệt thứ tự nên tập {1,2} tập {2,1} đó, ta coi chúng tổ hợp Bài toán đặt cho xác định tất tổ hợp châp k tập n phần tử Để đơn giản ta xét tốn tìm tổ hợp tập số ngun từ đến n Đối với tập hữu hạn bất kì, cách đánh số thứ tự phần tử, ta đưa toán tập số nguyên từ đến n Nghiệm cần tìm tốn tìm tổ hợp chập k n phần tử phải thoả mãn điều kiện sau: Là vector x =(x1,x2,…xk) xi lấy giá trị tập {1,2,…n} Ràng buộc: xin then print else for j:=1 to begin x[i]:=d[j]; case j of 1: s:=s+i; 2: s:=s-i; end; try(i+1); case j of 1: s:=s-i ; 2: s:=s+i; end; end; end; BEGIN Init; try(2); if dem=0 then writeln(f2,'Khong bieu thuc nao thoa man'); close(f1); close(f2); END 2.3 Chỉnh hợp không lặp Khác với chỉnh hợp lặp thành phần phép lặp lại, tức giống nhau, chỉnh hợp khơng lặp chập k tập n phần tử dãy k thành phần lấy từ tập n phần tử có xét thứ tự thành phần khơng phép giống 13 Chẳng hạn có n người, cách chọn k người để xếp thành hàng chỉnh hợp không lặp chập k n Nghiệm tốn tìm chỉnh hợp khơng lặp chập k tập n số nguyên từ đến n vector x thoả mãn điều kiện: x có k thành phần: x = (x1,x2,…xk) Các giá trị xi lấy tập {1,2, n} Ràng buộc: giá trị xi đôi khác nhau, tức xixj với ij Chỉnh hợp không lặp yêu cầu phần tử phải khác Để đảm bảo điều đó, ngồi mảng x, ta dùng thêm cấu trúc liệu mảng d để đánh dấu Khi giá trị chọn, ta đánh dấu giá trị đó, chọn, ta chọn giá trị chưa đánh dấu Mảng d "trạng thái" thuật toán Bạn đọc xem phần giả mã để thấy rõ ý tưởng procedure Try(i); var j; begin for j := to n if d[j]=0 then begin x[i] := j; d[j] := 1; if i=k then Print(x) else Try(i+1); d[i] := 0; end; end; Ví dụ 1: Liệt kê hoán vị n số nguyên dương *Phân tích Nói cách trực quan hốn vị tập n phần tử phép thay đổi vị trí n phần tử Ví dụ với N=3 ta có tập hoán vị sau: 123, 132, 213, 231, 312, 321 * Chương trình Program Hoanvi; uses crt; const max = 20; input='HOANVI.INP'; output='HOANVI.OUT'; var n : integer; x,d : array[1 max] of integer; f1,f2: text; procedure readfile; begin 14 clrscr; assign(f1,input); reset(f1); assign(f2,output); rewrite(f2); readln(f1,n); writeln(f2,'Cac hoan vi cua day ',n ,' so:'); end; procedure print; var i : integer; begin for i := to n write(f2,x[i]); writeln(f2); end; procedure try(i:integer); var j : integer; begin for j := to n if d[j] = then begin x[i] := j; d[j] := 1; if i = n then Print else try(i+1); d[j] := 0; end; end; BEGIN readfile; try(1); close(f1); close(f2); END Cây tìm kiếm quay lui sau: Tr y ( ) Tr y ( ) Tr y ( ) 123 Tr y ( ) Tr y ( ) Tr y ( ) Tr y ( ) Tr y ( ) 213 Tr y ( ) 132 231 Tr y ( ) 312 321 15 Ví dụ 2:Bài tốn xếp hậu Cho bàn cờ vua nxn Hãy xếp n hậu lên bàn cờ cho không khống chế Hai hậu khống chế chúng hàng, cột đường chéo *Phân tích Để chuyển tốn dạng chuẩn tốn tìm cấu hình tổ hợp, ta có có nhận xét: hậu phải hàng cột Do ta coi hậu thứ i hàng i biết x[i] cột đặt hậu thứ i ta suy lời giải Vậy nghiệm tốn coi vector x gồm n thành phần với ý nghĩa: Con hậu thứ i đặt hàng i cột x[i] x[i] lấy giá trị tập {1,2…n} Ràng buộc: giá trị x[i] khác đôi hậu đường chéo Khác với tốn sinh cấu hình đơn giản phần trước, sinh cấu hình tốn xếp hậu địi hỏi phân tích chi tiết điều kiện ràng buộc Ràng buộc thứ giá trị x[i] phải khác Ta dùng mảng đánh dấu thuật toán sinh hoán vị để đảm bảo điều Ràng buộc thứ hậu không nằm đường chéo phụ Các bạn dễ dàng nhận vị trí (x 1,y1) (x2,y2) nằm đường chéo nếu: x1y1=x2y2=const Tương tự, vị trí (x1,y1) (x2,y2) nằm đường chéo phụ nếu: x1y1=x2y2=const Do đó, hậu i đặt vị trí (i,x[i]) hậu j đặt vị trí (j,x[j]) phải thõa mãn ràng buộc: ix[i]  jx[j] i+x[i]  j+x[j] với ij Ta viết riêng hàm Ok để kiểm tra ràng buộc Nhưng giải pháp tốt dùng thêm mảng đánh dấu để mơ tả đường chéo 16 phụ có hậu khống chế Tức ta đặc hậu i vị trí (i,j), ta đánh dấu đường chéo i-j đường chéo phụ i+j Như cấu trúc liệu, ta dùng mảng: - Mảng x với ý nghĩa: x[i] cột ta đặt hậu thứ i - Mảng cot với ý nghĩa: cot[j]=true cột j có hậu đặt, ngược lại cot[j]=false - Mảng dcc với ý nghĩa: dcc[k]=true đường chéo thứ k có hậu đặt, tức ta đặt hậu vị trí (i,j) mà ij=k; ngược lại dcc[k]=false - Tương tự ta dùng mảng dcp với ý nghĩa: dcp[k]=true đường chéo phụ thứ k có hậu đặt * Chương trình Program Queens; const InputFile = 'QUEENS.INP'; OutputFile = 'QUEENS.OUT'; max = 100; var n: Integer; x: array[1 max] of Integer; cot: array[1 max] of Boolean; dcp: array[2 * max] of Boolean; dcc: array[1 - max max - 1] of Boolean; f1,f2: Text; procedure Init; begin Assign(f1, InputFile); Reset(f1); Assign(f2, OutputFile); Rewrite(f2); ReadLn(f1, n); FillChar(cot, SizeOf(cot), false); FillChar(dcp, SizeOf(dcp), false); FillChar(dcc, SizeOf(dcc), false); end; procedure Print; var i: Integer; begin for i := to n Write(f2, '(', i, ', ', x[i], '); '); WriteLn(f2); end; 17 procedure Try(i: Integer); var j: Integer; begin for j := to n if not cot[j] and not dcc[i-j] and not dcp[i+j] then begin x[i] := j; cot[j]:=true; dcc[i-j]:=true; dcp[i+j]:=true; {ghi nhận trạng thái mới} if i=n then print else Try(i+1); cot[j]:=false; dcc[i-j]:=false; dcp[i+j]:=false ; {phục hồi trạng thái cũ} end; end; BEGIN Init; Try(1); Close(f1); Close(f2); END Ví dụ Tìm đường ngắn nhất: Có n thành phố, a[i,j] chi phí để di chuyển từ thành phố i đến thành phố j (Nếu khơng có đường a[i,j] = 0) Một người muốn du lịch qua tất thành phố, thành phố lần trở nơi xuất phát cho tổng chi phí nhỏ Hãy xác định đường *Phân tích Phương án tối ưu toán vector x, xi thành phố đến thăm lần di chuyển thứ i Các điều kiện x sau: x = (x1,x2,…xn) xi lấy giá trị tập {1,2,…n} Ràng buộc: xi  xj với ij a[xi,xi+1]>0 với i=1,2, n, coi xn+1=x1 n �a[ x , x i i 1 ] � f(x) = i 1 Trong đó: - mảng x[i]: ghi lại hành trình - Mảng a[i,j]: chi phí để từ thành phố i đến thành phố j - Mảng d[i]: đánh dấu thành phố thăm, d[i]=true thăm thành phố i Mỗi phương án toán người du lịch hốn vị n thành phố Vì phương án chu trình nên ta coi thành phố xuất phát thành phố * Chương trình 18 program Travelling; const Input = 'TOUR.INP'; Output = 'TOUR.OUT'; max = 100; var A: array[1 max, max] of Integer; X, Best : array[1 max + 1] of Integer; D: array[1 max] of Boolean; m, n: Integer; Min: Integer; procedure Readfile; var i, j, k: Integer; f: Text; begin Assign(f, Input); Reset(f); ReadLn(f, n, m); for i := to n for j := to n a[i, j] := ; for k := to m begin ReadLn(f, i, j, a[i, j]); a[j, i] := a[i, j] ; end; Close(f); end; procedure Init; begin FillChar(D, n, false); d[1] := False; X[1] := 1; Min:= maxint; end; procedure Print; var i: Integer; f: Text; begin 19 Assign(f, Output); Rewrite(f); for i := to n Write(f, Best[i], '->'); WriteLn(f, 1); WriteLn(f, 'Hanh trinh ngan nhat: ', Min); Close(f); end; procedure update; var s,i:integer; begin s:=a[x[n],1]; for i:=1 to n-1 s:=s+a[x[i],x[i+1]]; if sn then update else for j := to n if not d[j] and (a[x[i-1],j]>0 ) then begin X[i] := j; d[j] := true; Try(i + 1); d[j] := false; end; end; BEGIN Readfile; Init; Try(2); Print; END Một số toán tham khảo 20 Bài Cho hình vng kích thước NX N (2 N 5) Hãy điền chữ A,B,C,D vào ô cho dòng cột chữ xuất lần Hỏi có cách xếp Bài Bài toán mã tuần: Cho bàn cờ kích thước NxN Tọa độ bàn cờ (x,y) với x số hiệu dòng, y số hiệu cột Một quân mã (x, y), tìm đường quân mã cho quân mã qua tất ô bàn cờ, ô qua lần Bài Cho N cân có khối lượng tương ứng q1, q2,…,qn (nguyên) cân đĩa Khi cân đặt số cân vật cần cân đĩa cho cân thăng Cho vật có khối lượng M, hỏi cân cân nào? Bài Có M loại tiền có giá trị L1, L2,…, Lm (nguyên dương) với số tờ loại s1,s2,…sm (nguyên dương) Hãy tìm cách đổi tờ tiền có mệnh giá X thành loại tiền có kho Bài Bài toán túi: Một nhà thám hiểm cần đem theo túi có trọng lượng khơng q b Có n đồ vật cần đem theo Đồ vật thứ j có trọng lượng aj giá trị sử dụng cj (j = 1, 2, 3, ,n) Hỏi nhà thám hiểm cần đem theo đồ vật tổng giá trị sử dụng đồ vật đem theo lớn nhất? Bài Mét tõ đợc gọi chân loại M, N đợc xây dựng từ tập hợp gồm M ký tự, có độ dài N từ liên tiếp giống Giả sử tập M={'1', '2', '3'} Ví dụ: 1232; 2123; 1231 từ chân loại 3,4; 1123;1212;1233 từ từ chân loại 3,4 III KT QU THC NGHIỆM Sau áp dụng đề tài trình ôn thi đội tuyển, hình thức giám sát, đề kiểm tra kết hợp thực hành thu kết sau: N ội d u n g cầ n nắ m bắt Số lượng Hiểu kiến thức vừa học 6/6 Tự viết lại chương trình giới thiệu 6/6 Vận dụng kiến thức học để làm tốt 4/6 tập Tỉ lệ (%) 100% 100% 67% 21 C KẾT LUẬN VÀ ĐỀ XUẤT I KẾT LUẬN Phần lớn toán liệt kê trường hợp tổng quát có phương pháp tối ưu vét cạn Tuy nhiên, nhược điểm phương pháp độ phức tạp tính tốn lớn tượng bùng nổ tổ hợp Trong số trường hợp, để cải tiến phương pháp này, người ta đặt “mắt lọc” cách loại bỏ chọn số hướng để việc tìm kiếm nhanh Do đề tài phát triển thêm cách xét số phương pháp cải tiên khác kỹ thuật nhánh cận, phương pháp quy hoạch động, phương pháp tham lam,… Đề tài phần kết trình nghiên cứu ôn luyên đội tuyển thân năm qua Tơi mong đề tài giúp ích cho số giáo viên học sinh q trình ơn luyện đội tuyển học sinh giỏi Đề tài cịn nhiều thiếu sót, mong góp ý, bổ sung giáo viên tổ môn giáo viên khác để đề tài phát triển hồn thiện II ĐỀ XUẤT, KIẾN NGHỊ *Đối với cấp trường - Cần trang bị hình tivi máy chiếu phòng máy, phòng máy kết nối Internet để học sinh khai thác thông tin nhanh gọn - Các máy tính phịng thực hành cũ, cấu hình thấp thường hay hư hỏng, cần nâng cấp đầu tư thêm số lượng máy để học sinh thực hành tôt *Đối với cấp sở - Cần tổ chức thêm số thi thuộc lĩnh vực tin học, ví dụ thi Tin học trẻ, Tin học nhà trường, Thi soạn thảo văn bản,… để tạo hội cho em học sinh phát triển khả tin học - Cần quan tâm đầu tư thêm sở vật chất cho môn tin học máy chiếu đa năng, phòng thực hành,… - Cần tăng thêm số lượng thi học sinh giỏi tỉnh nhằm mục đích mở rộng tìm kiếm, khai thác tài tin học trẻ 22 TÀI LIỆU THAM KHẢO Gi ải t huật l ập t rì nh( ebook) , t ác gi ả Lê M i nh Hoàng, ĐH sư phạm Hà Nội Phươ ng pháp gi ải t oán t rong t i n học, t ác gi ả Th.s Trần Đức Huyên, NX B Gi áo dục Em t ập l ập t rì nh 2, tác gi ả Trần Đỗ Hùng, NX B Gi áo dục Một số t ài li ệu t ham khảo qua i nt ernet XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh Hóa, ngày 20 tháng năm 2021 Tơi xin cam đoan SKKN viết, không chép người khác Người viết (Ký ghi rõ họ tên) Phạm Văn Cường 23 ... vét cạn phù hợp Chính nên tơi chọn đề tài: ? ?Sử dụng thuật toán quay lui để giải dạng toán liệt kê phương pháp vét cạn ôn luyện học sinh giỏi môn Tin học? ?? II THỰC TRẠNG CỦA VẤN ĐỀ Thuận lợi Do... vững phương pháp giải tốn Bài toán tin học thường đa dạng phức tạp, tốn có nhiều phương pháp giải khác Để lựa chọn phương pháp thích hợp cho tốn, phân chia toán thành dạng toán tổng quan phương pháp. .. cầu phương pháp vét cạn lựa chọn thích hợp II BIỆN PHÁP GIẢI QUYẾT VẤN ĐỀ Một số khái niệm 1.1 Vét cạn Phương pháp vét cạn: phương pháp tìm nghiệm tốn cách xem xét tất phương án Đối với người, phương

Ngày đăng: 25/05/2021, 19:59

Từ khóa liên quan

Mục lục

  • Ví dụ: Tìm các tổ hợp chập k của n

  • Ví dụ 1: Liệt kê dãy nhị phân độ dài n (n nguyên dương)

  • *Chương trình

  • Ví dụ 3. Tìm đường đi ngắn nhất:

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

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

Tài liệu liên quan