Ontap Dequy

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 2

ĐỆ QUY VÀ KỸ THUẬT ĐỆ QUY

Quy nạp và đê quy


Quy nạp là tư duy tổng quát hóa bằng phỏng đoán (đặt giả thiết)và
chứng minh phỏng đoán (chứng minh).
Để chứng minh một mệnh đề P(n) đúng với mọi n, kỹ thuật quy nạp gồm 3
bước chính (1) CM P(n0) đúng trong trường hợp cơ bản n0, (2) lập giả
thiết quy nạp giả sử P(k) đúng với n = k > n0, và cuối cùng (3)chứng
minh P(k+1) đúng với n = k+1 dựa trên giả thiết P(k) đúng.
Đệ quy là kỹ thuật giải quyết vấn đề bằng phân tích (giả thiết) và thế
ngược (áp dụng).
Định nghĩa bằng đệ quy
Một khái niệm có định nghĩa đệ quy nếu nó được định nghĩa qua chính
nó. Một hàm (toán học/tin học) có định nghĩa đệ quy nếu nó gọi lại
chính nó trong than hàm.
Kỹ thuật lập trình đệ quy
Các thành phần của một hàm đệ quy
Nếu gọi kích thước đầu vào của hàm là quy mô bài toán hàm đệ quy giải
quyết thì một hàm đệ quy gồm 2 mệnh đề chính sau:

 Mệnh đề cơ sở: là mệnh đề thiết lập điều kiện kết thúc đệ quy
(thường ứng với quy mô nhỏ nhất của bài toán).
 Mệnh đề đệ quy: là mệnh đề gọi lại hàm với quy mô khác (thường là
nhỏ hơn).
Kỹ thuật lập trình đệ quy
(B1) Xác định và mô tả mệnh đề cơ sở.
(B2) Xác định và mô tả mệnh đề đệ quy.
Áp dụng của đệ quy
Đệ quy thường được áp dụng cho các kỹ thuật chia-để-trị, quay-lui.
n × ( n−1 ) × … ×(n−k +1)
BT1. Viết chương trình tính C nk = .
1× 2× … ×k
BT2. Viết chương trình tình phần tử thứ n của dãy Fibonacci biết rằng
phần tử thứ nhất bằng 0, phần tử thư 2 bằng 1, phân tử thứ n > 2 bằng
tổng hai phần tử trước nó.
BT3. Viết chương trình tính BCNN của 2 số nguyên a, b.
BT4. Viết chương trình tính tổng, max, min một dãy có n số a0,a1,…, an-1

BT5. Một dãy được gọi là có thứ tự tăng (giảm) nếu ai  ai+1 (hay ).
Viết chương trình kiểm tra dãy a0,…, an-1 có phải dãy tăng.
BT6. Viết chương trình kiểm cho biết vị tri của một giá trị x trong
danh sách a0, a1,…, an-1 (kết quả = -1 nếu x không có trong danh sách).
BT7. Viết chương trình BT6 trong trường hợp dãy có thứ tự giảm.
BT8. Viết chương trình in ra biểu diễn nhị phân của một số nguyên
dương.
BT9. Viết chương trình liệt kê các chuỗi nhị phân n bit.
BT10. Viết chương trình liệt kê các chuỗi k-phân n kí hiệu.
BT11. Viết chương trình in ra tất cả hoán vị của dãy n kí hiệu phân
biệt. VD từ ‘abc’ có ‘acb’,’bac’,’bca’,’cab’, ‘cba’.
BT12. Viết chương trình in ra có chuỗi k kí hiệu của chuỗi n > k kí
hiệu. VD ‘1234’, k = 2, có ‘12’,’13’,’14’,’21’,’23’,’24’,…,’43’
BT13. Viết chương trình nhập giá trị T và in ra vị trí các phần tử của
danh sách các số nguyên dương a0,…, an-1 sao cho tổng chúng bằng T. VD A
= [3, 4, 7, 2, 1] và T = 7 thì 30+41, 41+23+13, 72.
BT14. Viết chương trình đổi tiền mệnh giá lớn thành các tờ tiền mệnh
giá nhỏ.

BT15. Một điểm trong mặt phẳng được xác định bằng tọa độ Pi = [xi,yi] 
R2. Cho danh sách n đỉnh của một n-giác lồi: P0,…, Pn-1. Tính diện tích
của n-giác này.

You might also like