TÀI LIỆU DỆ QUY DÀNH CHO HOC SINH CHUYÊN TIN

90 497 0
TÀI LIỆU DỆ QUY DÀNH CHO HOC SINH CHUYÊN TIN

Đ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 đệ qui : Một đối tợng gọi có tính đệ qui đợc định nghĩa thông qua Một hàm , 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ị S (A ,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 j = 1,2,3 B2 : i = j=2,3 123 123 213 132 213 312 231 312 321 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 cho phần tử thứ i nhận giá trị từ (A i-1 +1) đến giá trị cao đợc giá trị (NK)+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 _ C11 Đệ qui TDH 11/12/2015 11/12/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 55 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ử 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 phần tử 1,2,3,4,5 0*** 01** i=1 ; n-k+i = i=2 ; n-k+i = 012* 02** 013* i=3 ; n-k+i = 0123 0124 0125 0134 0135 014* 023* 03** 024* 034* 0145 0234 0235 0245 0345 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 ) 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 : If (N=1) or (N=2) then Fibonaci := 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ụ } Fibonaci:= Fibonaci(N-1)+ Fibonaci(N-2); { Thí dụ } thể tính đệ qui _ C11 Đệ qui TDH 11/12/2015 11/12/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 56 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 N phần tử 1,2,3, ,N ( 0[...]... TDH 11/12/2015 11/12/2015 Tài liệu 11 Chuyên Tin - Lê Quý Đôn 88 N) Hãy phân công sao cho mỗi thợ 1 việc mà tổng hiệu quả công việc lớn nhất ,đồng thời hạn chế 2 tình trạng éo le : Tình trạng 1 : Công việc V1 sẽ giao cho thợ T1 , nhng thợ T2 làm V1 hiệu quả hơn Tình trạng 2 : Công việc V1 sẽ giao cho thợ T1 , nhng thợ T1 thích V2 hơn C11-B-16 Cho M,N là 2 số tự nhiên (M,N

Ngày đăng: 12/11/2015, 20:40

Từ khóa liên quan

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

Tài liệu liên quan