Tài liệu ôn tập tin học lớp 12 kiểm tra, thi bồi dưỡng học sinh tham khảo (4).DOC

139 2.5K 1
Tài liệu ôn tập tin học lớp 12 kiểm tra, thi bồi dưỡng học sinh tham khảo (4).DOC

Đ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

Tài liệu 11 Chuyên Tin - Lê Quý Đôn 54 A / Kh¸i niƯm chung I / Kh¸i niƯm vỊ đệ qui : Một đối tợng gọi có tính đệ qui đợc định nghĩa thông qua nã Mét hµm , mét thđ tơc cã tÝnh đệ qui thân chơng trình hàm , thủ tục lại có lời gọi tới Thí dụ 1: Định nghĩa giai thừa số nguyên không âm định nghĩa có tính đệ qui ThËt vËy:  NÕu N=0 (N)! =  N * (N-1)! Nếu N>0 Để định nghĩa N giai thừa , phải thông qua định nghĩa giai thừa ( N-1) Thí dụ 2: Xây dựng hoán vị N phần tử có tính chất đệ qui Thật : Giả sử có hoán vị lµ S (A1 ,A , A i-1 ,Ai , An-1 ,An ), sau đổi chỗ phần tử S[i] S[j] hoán vị ta đợc hoán vị Sau sơ đồ hình thành dần hoán vị hoán vị S(1,2,3) 123 B1 : i =1 _  C11 §Ư qui 123 213 TDH 7/8/2015 7/8/2015 312 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 55 j = 1,2,3 B2 : i = 123 321 132 213 j=2,3 231 312 B3 : i =3 123 132 213 231 312 321 j=3 Vậy để xây dựng hoán vị sau ta phải dựa vào hoán vị đà sinh trớc Thí dụ 3: Xây dựng tổ hợp chập K N phần tử 1,2,3, ,N theo phơng thức đệ qui : Ta xây dựng dần phần tử từ vị trí thứ đến vị trí thứ K tổ hợp Để xây dựng phần tử thứ i ( sau đà xây dựng xong phần tử từ đến i-1 tổ hợp ) , ta sÏ cho phÇn tư thø i nhËn giá trị từ (A i-1 +1) đến giá trị cao đợc giá trị (N-K)+i sau phần tử thứ i (K-i) phần tử ,do phần tử thứ i nhận giá trị cao (N-K)+i phần tử khả nhận giá trị : (N-K)+i +1 , (N-K)+i +2 , , (N-K)+i + (K-i) = N Vậy để xây dựng phần tử thứ i tổ hợp , ta phải dựa vào kết đà xây dựng tới phần tử thứ i-1 Tất nhiên để xây dựng phần tử thứ , ta phải dựa vào phần tử hàng rào phần tử vị trí thứ ,ta gán cho phần tử giá trị cho phù hợp qui luật nêu ? rõ ràng giá trị ,nhằm cho quyền đợc bình đẳng nh phần tử khác Phần tử chịu trách nhiệm nặng nề ,bắt đầu từ xây dựng dần đợc phần tư tiÕp theo cđa mäi tỉ hỵp , song ta đừng quên phải ngậm ngùi không đợc đứng tổ hợp Sau sơ đồ minh hoạ việc xây dựng tổ hợp chập cđa phÇn tư 1,2,3,4,5 0*** _  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 01** i=1 ; n-k+i = 03** i=2 ; n-k+i = 024* 034* 56 012* * * 013* 014* 023* i=3 ; n-k+i = 0123 0124 0125 0134 0235 0245 0345 0135 0145 0234 Ii / Lu ý thủ tục hàm đệ qui : Lu ý + Trong thủ tục hàm đệ qui cần chứa lệnh thể tính dừng đệ qui Nghĩa thủ tục , hàm đệ qui gọi tới số hữu hạn lần gặp điều kiện thoát ( để không gọi tíi chÝnh nã n÷a ) ThÝ dơ : Function Giaithua(N: Byte) : LongInt; Begin If N=0 then giaithua := Else Giaithua := N*Giaithua(N-1); End; Trong hµm Giaithua , điều kiện dừng 0! = , lần gọi tới hàm Giaithua N giảm đơn vị nên dẫn tới trờng hợp N=0 ThÝ dô : Function Fibonaci(N : Integer) : LongInt; Begin If (N=1) or (N=2) then Fibonaci := Else Fibonaci:= Fibonaci(N-1)+ Fibonaci(N-2); End; Trong hàm Fibonaci , điều kiện dõng lµ : If (N=1) or (N=2) then Fibonaci := _  C11 Đệ qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 57 lần gọi tới hàm Fibonaci N giảm , dẫn tới tình trạng N=3 ==> Fibonaci(3) = Fibonaci(2)+ Fibonaci(1) = 1+1 =2 Lu ý Thủ tục hàm đệ qui phải thể tính đệ qui : Nó gọi tới Trong thí dụ nêu lƯnh Giaithua := N*Giaithua(N-1); { ThÝ dơ } hc Fibonaci:= Fibonaci(N-1)+ Fibonaci(N-2); { ThÝ dơ } thĨ hiƯn tính đệ qui III / Một số Bài tập : Bài : Xây dựng hoán vị tập N phần tử 1,2,3, ,N đệ qui : Bài : Xây dựng tổ hợp chËp K cđa N phÇn tư 1,2,3, ,N ( 00 then Exit; End; Chapnhan := True; End; Procedure Dat(x,y,hg : Byte); Var i : Byte; Begin Case hg of : For i:=1 to M[x,y+i-1] := T[q,4]; : For i:=1 to M[x+i-1,y] := T[q,4]; _  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý §«n 189 End; End; Function Duongcheo(B : Banco): LongInt; Var dc: LongInt; i : Byte; Begin dc := 0; For i:=1 to If (B[i,i]= 0) then dc := dc*10 Else dc := dc*10+B[i,i]; Duongcheo := dc; End; Procedure Xoa(x,y,hg : Byte); Var i : Byte; Begin Case hg of : For i:=1 to M[x,y+i-1] := 0; : For i:=1 to M[x+i-1,y] := 0; End; End; Procedure GhiLB; Var i,j : Byte; Begin For i:=1 to Begin For j:=1 to Write(F,LB[i,j]:3); Writeln(F); End; End; Procedure GhiLM; Var i,j : Byte; Begin For i:=1 to Begin For j:=1 to Write(F,LM[i,j]:3); Writeln(F); End; Writeln(F); End; Procedure Ghitoiuu; Var i : Byte; p : LongInt; Begin _  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý §«n 190 FillChar(D,Sizeof(D),False); FillChar(B,Sizeof(B),0); For i:=1 to Doi(i); p := duongcheo(B); If p>Ldcheo then Begin Ldcheo := p; LB := B; LM := M; End; End; Procedure Vet(x,y : Byte); Var hg,i,j : Byte; Begin Tim(x,y); For hg := to If chapnhan(x,y,hg) then Begin Inc(q); Dat(x,y,hg); If q=21 then Ghitoiuu Else Vet(x,y); Dec(q); Xoa(x,y,hg); End; End; Procedure Datnot; Var i,j,k,dem : Byte; Begin FillChar(D,Sizeof(D),False); For i:=1 to D[LM[i,i]]:= True; For k:=1 to 21 If Not D[k] then Begin dem := 0; For i:=1 to For j:=1 to If LM[i,j]=k then Begin Inc(dem); LB[i,j]:= T[k,dem]; _  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 191 End; End; End; BEGIN Clrscr;{ TaoF;} DocF; Assign(F,Fo); ReWrite(F); Ldcheo := 0; Writeln('Please wait '); For x:=1 to For y:=1 to Begin FillChar(M,Sizeof(M),0); FillChar(B,Sizeof(B),0); q := 0; M[x,y] := 22; Vet(1,1); End; Datnot; GhiLM; GhiLB; Close(F); Writeln('Da xong '); Readln; END Bài làm theo sơ đồ sau : - Cho ô trống tuỳ ý bàn cờ , coi Triminô nh ( nghĩa không để ý tới số chúng ) , đặt 21 quân Triminô lên bàn cờ , đựơc kết : ô trống vào vị trí (3,3) ; (3,6) ; (6,3) ; (6,6) đặt đợc Tất có 1424 cách đặt theo kiểu (tạm gọi cách cấu hình bàn cờ ) - Với cách đặt , xếp Triminô lần lợt vào vị trí đờng chéo từ góc trên_trái góc dới_phải , cho vị trí tốt : + Xem ô (i,i) xét ô vị trí thứ Triminô Ti chứa ô (i,i) cấu hình xét (gọi vị trí vt ) + Duyệt Triminô cha dùng 21 Triminô , tìm có số lớn vị trị vt Nếu vt=1 phải tìm số lớn vị trí Gọi tìm đợc Tx _  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 192 + Trên bàn cờ thay tơng øng Ti b»ng Tx , xo¸ Tx đà sử dụng - Tính đờng chéo , thấy tốt lu lại bàn cờ cấu hình tơng ứng - Đặt nốt Triminô cha dùng vào bàn cờ theo lu cấu hình ( cần cách đặt nốt ) _  C11 §Ư qui TDH 7/8/2015 7/8/2015 .. .Tài liệu 11 Chuyên Tin - Lê Quý ? ?ôn 55 j = 1,2,3 B2 : i = 123 321 132 213 j=2,3 231 312 B3 : i =3 123 132 213 231 312 321 j=3 Vậy để xây dựng hoán vị sau ta phải dựa vào hoán vị đà sinh. ..  C11 §Ư qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý ? ?ôn 60 §êng A5 _ C11 Đệ qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý ? ?ôn 61 Bài : Uses Crt; Const N = 8;... 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý ? ?ôn 72 B / Quay lui + vÐt c¹n + lùa chän tèi u KÕt hợp đệ qui _ C11 Đệ qui TDH 7/8/2015 7/8/2015 Tài liệu 11 Chuyên Tin - Lê Quý ? ?ôn 73 I / ý

Ngày đăng: 08/07/2015, 16:43

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