Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 195 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
195
Dung lượng
2,02 MB
Nội dung
1 Thông tin học phần: - Tên học phần CẤU TRÚC RỜI RẠC - Mã học phần KC21206 - Loại học phần (Bắt buộc) Số tín chỉ: lý thuyết Trình độ: Cho SV năm thứ Phân bổ thời gian - Lên lớp: 80% - Bài tập: 20% Mục tiêu học phần Trang bị cho sinh viên kiên thức Cấu trúc rời rạc ứng dụng mà kỹ sư CNTT cần có việc thiết kế máy tính xây dụng phần mềm để giải toán thực tế Mô tả vắn tắt nội dung môn học Cung cấp cho sinh viên kiến thức Tập hợp, Đại số Boole, Thuật toán, Đồ thị, Cây, Một số kiến thức bổ trợ khác Nhiệm vụ sinh viên - Dự lớp - Tự học - Bài tập Tài liệu học tập - Sách, giáo trình - Sách tham khảo [1] Đỗ Đức Giáo, Toán Rời rạc ứng dụng Tin học, NXB Giáo dục, 2006 [2] Vũ Kim Thành, Toán Rời rạc, ĐH Nông nghiệp Hà Nội, 2008 [3] Nguyễn Đức Nghĩa , Toán rời rạc, Đại học Quốc Gia Hà Nội, 2003 [4] Đỗ Đức Giáo, Toán học rời rạc, Đại học Quốc Gia Hà Nội, 1998 [5] Đỗ Đức Giáo, Cơ sở toán lập trình, KH&KT Hà Nội, 1998 [6] Nguyễn Xuân Quỳnh, Cơ sở toán rời rạc ứng dụng, GDĐT, 1993 Tiêu chuẩn đánh giá sinh viên - Điểm đánh giá nhận thức thái độ tham gia thảo luận: 10% - Điểm kiểm tra học phần: 20% - Điểm thi kết thúc học phần: 70% 10 Thang điểm Thực theo học chế tín 11 Nội dung học phần Gồm phần - Phần I Lý thuyết tập hợp (Từ chương I đến III) Phần II Lý thuyết đồ thị (Chương IV, V) Phần III Lôgic (Chương VI, VII) MỤC LỤC Trang Chương TẬP HỢP Mục tiêu Cung cấp cho sinh viên kiến thức tập hợp, hàm số, phương pháp đếm tập hợp Từ đó, sinh viên có nhìn tổng quan cấu trúc rời rạc để dựng lên tất cấu trúc khác 1.1 BIỂU DIỄN TẬP HỢP TRÊN MÁY TÍNH 1 1.Khái niệm tập hợp Các tập hợp dùng để nhóm đối tượng với Thông thường đối tượng tập hợp có tính chất tương tự Định nghĩa Một tụ tập đối tượng có tính chất chung gọi tập hợp Các đối tượng tập hợp gọi phần tử cửa tập hợp Tập hợp thường gọi tắt tập Cách viết tập hợp: Tên tập hợp = {a1, a2, …, an} Tên tập hợp có không, giá trị phần tử tập hợp (i = … n), n số phần tử tập hợp Ví dụ Tập N số tự nhiên, N = {0, 1, 2, … } Tập N* số tự nhiên khác 0, N* = {1, 2, … } Tập Z số nguyên, Z = { …, -1, 0, 1, 2, … } Tập Z+ số nguyên dương, Z+ = {1, 2, 3, … } … Ta viết a ∈ A ( đọc: a thuộc A) để a phần tử tập A; a ∉ A (đọc: a không thuộc A) để a phần tử tập hợp A Tập hợp không chứa phần tử gọi tập rỗng, ký hiệu ∅ Ví dụ Tập hợp số nguyên dương lớn bình phương tập rỗng 1 Biểu diễn tập hợp máy tính Có nhiều cách biểu diễn tập hợp máy tính Ở đây, giới thiệu phương pháp biểu diễn cách lưu trữ phần tử tập hợp dạng xếp tùy phần tử tập vũ trụ Giả sử X tập vũ trụ A ⊆ X (với giả thiết dung lượng nhớ máy tính không nhỏ lực lượng X) Giả sử |X| = n, ta phần tử X = {a1, a2, …, an} Biểu diễn tập A xâu bit có chiều dài n, bit thứ i ∈ A, bit thứ i ∉ A Ví dụ Cho X = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} A = {1, 3, 5, 7, 9} B = {2, 4, 6, 8, 10} a Tìm xâu bit A ∪ B b Tìm xâu bit A ∩ B c Tìm xâu bit A B Hướng dẫn Xâu bit biểu diễn tập A = {1, 3, 5, 7, 9} 1010101010 Xâu bit biểu diễn tập B = {2, 4, 6, 8, 10} 0101010101 Để nhận đuợc xâu bit cho hợp giao hai tập hợp, ta thực phép toán Boole xâu bit biểu diễn hai tập hợp Xâu bit hợp OR (phép tuyển ∨) bit hai xâu tương ứng xâu bit giao AND (phép hội ∧) hai xâu tuơng ứng Xâu bit A ∪ B: 1010101010 ∨ 1010101010 = 1111111111 tương ứng với tập A ∪ B = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Xâu bit A ∩ B: 1010101010 ⋀ 0101010101 = 0000000000 tương ứng với tập A ∩ B = ∅ Để nhận xâu bit phần bù tập hợp A, ta việc thay thay xâu bit A Xâu bit A: 0101010101; B: 1010101010 Ví dụ Cho tập vũ trụ U = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Tìm tập biểu diễn bới xâu a) 11110 01111 A = {1, 2, 3, 4, 7, 8, 9, 10} b) 01011 11000 B = {2, 4, 5, 6, 7} c) 10000 00001 C = {1, 10} 1 Quan hệ tập hợp Định nghĩa Tập A gọi tập tập B phần tử A phần tử B Ta dùng ký hiệu A ⊆ B để tập A tập B Nhận xét A ⊆ B lượng từ ∀x (x ∈ A → x ∈ B) Ví dụ a) Tập số nguyên dương lẻ nhỏ 10 tập tập số nguyên dương nhỏ 10 b) Tập rỗng tập hợp c) Mọi tập hợp tập Khi muốn nhấn mạnh tập A tập tập B A ≠ B, ta viết A ⊂ B nói A tập thật B Định nghĩa Hai tập hơp chúng có phần tử Ví dụ Các tập {1, 3, 5} {3, 5, 1} chúng có phần tử Nhận xét Nếu A ⊆ B B ⊆ A A = B Ví dụ Xác định xem mệnh đề sau hay sai a) x ∈ {x} (đúng) b) {x} ⊆ {x} (đúng) c) {x} ∈ {x} (sai) d) {x} ∈ {{x}} (đúng) e) ∅ ⊆ {x} (đúng) f) ∅ ∈ {x} (sai) Định nghĩa Nếu có xác n phần tử phân biệt tập hợp S, với n số nguyên không âm,thì ta nói S tập hữu hạn n số S, ký hiệu |S| = n Ví dụ S tập chữ tiếng Anh, |S| = 26; |∅| = 0; Lưu ý - Các phần tử tập hợp tập hợp khác - Nếu S = {∅} |S| = Ví dụ Xác định số tập sau a) {a} (|S| = 1) b) {{a}} (|S| = 1) c) {a,{a}} (|S| = 2) d) {a,{a},{a,{a}}} (|S| = 3) Định nghĩa Một tập gọi vô hạn, hữu hạn Ví dụ Các tập N, Z, Z+, Q R tập vô hạn 1 Các phép toán tập hợp a) Phép hợp Cho A B hai tập hợp Hợp A B, ký hiệu A∪ B, tập hợp chứa phần tử, thuộc A thuộc B A ∪ B = {x| x ∈ A ∨ x ∈ B} b) Phép giao Cho hai tập hợp A B Giao A B, ký hiệu A ∩ B, tập hợp chứa phần tử thuộc A B A ∩ B = {x| x ∈ A ∧ x ∈ B} c) Phép hiệu Cho A B hai tập hợp, hiệu A B, ký hiệu A – B (hay A\ B), tập hợp chứa phần tử thuộc A không thuộc B Hiệu A B đuợc gọi phần bù B A A – B = {x| x ∈ A ∧ x ∉ B} Đặc biệt Cho U tập vũ trụ Phần bù tập A, kí hệu A, phần bù của A U: A = {x| x ∉ A} Ví dụ a) Cho A = {1, 2, 3} B = {1, 3, 5} A ∪ B = {1, 2, 3, 5} b) Cho A = {1, 2, 3} B = {1, 3, 5} A ∩ B = {1, 3} c) Cho A = {1, 2, 3, 4, 5} B = {4, 5} A – B = B = {1, 2, 3} Ví dụ Giả sử A tập sinh viên năm thứ hai trường bạn B tập sinh viên học môn toán rời rạc trường bạn Hãy biểu diễn tập sau qua A B a) Tập hợp sinh viên năm thứ hai học môn toán rời rạc trường bạn (A ∩ B) b) Tập hợp sinh viên năm thứ hai trường bạn không học môn toán rời rạc (A \ B) c) Tập hợp sinh viên trường bạn năm thứ hai học tóan rời rạc (A ∪ B) 1 Tập hợp lũy thừa Cho tập S, tập lũy thừa S tập tất tập S, ký hiệu P(S) P(S) = {A| A ⊆ S} Ví dụ Tìm tập lũy thừa tập ∅ tập luỹ thừa tập {∅} P(∅) = {∅} , P({∅}) = {∅, {∅}} Nếu tập có n phần tử tập lũy thừa có 2n phần tử Ví dụ Tìm tập lũy thừa tập chữ số nhị phân B = {0,1} P(B) = {∅, {0},{1},{0,1}} 1 Các cách xác định tập hợp a Liệt kê phần tử Một tập hợp xác định cách liệt kê tất phần tử Ví dụ a) V = {a, e, I, o, u} b) O = {1, 3, 5, 7, 9} c) N = {0, 1, 2, 3, …} d) Z = { , 0, 1, 2, 3, …} b Chỉ thuộc tính đặc trưng phần tử Một tập hợp xác định cách rõ thuộc tính đặc trưng phần tử Ví dụ a) V = {x| x nguyên âm bảng chữ Tiếng Anh} b) O = {x| x số nguyên dương, lẻ, nhỏ 10} c) N = {x| x số tự nhiên} d) R = {x| x số thực} Ví dụ Liệt kê phần tử tập hợp sau a) {x| x số thực cho x2 = 1} A = {-1, 1} b) {x| x số nguyên cho x2 = 2} B = ∅ Dùng cách rõ thuộc tính đặc trưng mô tả tập hợp sau a) {0, 3, 6, 9, 12} A = {x| x = 3k ∧ x ≤ 12, (k ≥ 0)} b) {-3, -2, -1, 0, 1, 2, 3} B = {x| x ∈ Z ∧ |x| ≤ 3} 1 Lực lượng tập hợp a Định nghĩa 10 Ví dụ Tính tổng T = + + + … + (2n - 1) Khi n = 1: T = Khi n = 2: T = = 22 Khi n = 3: T = = 32 n = 4: T = 16 = 42 …… Nên ta dự đoán T = + + + … + (2n - 1) = n2 181 7.4 SỐ NGUYÊN VÀ PHÉP CHIA 7.4.1 Số nguyên tố (SNT) • Định nghĩa Số nguyên dương p > có ước số p gọi số nguyên tố, ngược lại gọi hợp số • Định lý Mọi số nguyên dương > viết dạng tích số nguyên tố (các số nguyên tố viết theo thứ tự tăng dần) • Định lý Nếu n hợp số n có ước số nguyên tố nhỏ Hai số nguyên có ước chung lớn gọi nguyên tố Ví dụ 5, 35 cặp số nguyên tố Chú ý Cho n số nguyên a1, a2, , an Các số gọi nguyên tố ước chung lớn n số Cần phân biệt với khái niệm nguyên tố đôi Các số a1, a2, , an gọi nguyên tố đôi cặp hai số khác chúng nguyên tố Ví dụ Ba số 3, 5, 15 nguyên tố không nguyên tố đôi 7.4.2 Số học đồng dư • Định nghĩa Cho a b hai số nguyên, m nguyên dương Nói a đồng dư với b môđun m ký hiệu a ≡ b (mod m) a - b chia hết cho m Ví dụ 10 đồng dư môđun 182 • Các định lý - Định lý a ≡ b (mod m) ↔ a mod m = b mod m Định lý a ≡ b (mod m) ↔ tồn số nguyên k: a = b + km Định lý a ≡ b (mod m) c ≡ d (mod m) thì: a + c ≡ b + d (mod m) - ac ≡ bd (mod m) • Các ứng dụng Tạo hàm băm, số giả ngẫu nhiên, mã dịch chuyển 7.4.3 Số nguyên thuật toán a Biểu diễn số nguyên Định lý Cho b, n nguyên dương (b > 1), biểu diễn n = a kbk + ak-1bk-1 + … + a1b + a0 với k nguyên không âm, nguyên không âm < b ak ≠ ( Khai triển số b n) Khai triển nhị phân N = ak2k + ak-12k-1 + … + a12 + a0 ; là Ví dụ 321 = (321)10 = (1 0100 0001)2 = (141)16 b Các phép tính số nguyên (cơ số 2) • Cộng số nguyên n bit Số phép cộng bit O(n) Ví dụ (1110)2 + (1011)2 = (1 1001)2 Nhân số nguyên n bit • Ví dụ (110)2(101)2 = (1 1110)2 c • Thuật toán Euclid (tính ƯSCLN số) Bổ đề Cho a = bq + r , a, b, q r số nguyên Khi ƯCLN(a, b) = ƯCLN(b, r) 183 Procedure ƯCLN(a,b: nguyên dương) x: = a y: = b while y ≠ begin r: = x mod y x: = y; end y: = r { ƯCLN(a, b) x} Ví dụ ƯCLN(12, 18); ƯCLN(123, 277) 7.4.4 Ma trận không - Định nghĩa Ma trận có phần tử gọi ma trận không – Định nghĩa Cho A = [aij] B = [bij] ma trận không - m x n Khi Hợp A B A ∨ B = [hij] với hij = aij ∨ bij Giao A B A ∧ B = [gij] với gij = aij ∨ bij Định nghĩa Cho A = [aij] ma trận không - m x k B = [b ij] ma trận không - k x n Tích Boole A B A B = [cij], cij = (ai1 ∧ b1j ) ∨ (ai2 ∧ b2j ) ∨ … ∨ (aik ∧ bkj ) Ở ∨ ∧ phép toán bit OR AND Định nghĩa Cho A ma trận không - vuông nxn, r nguyên dương Khi Lũy thừa Boole bậc r A, kí hiệu A[r] , với Ar = A A … A Ta định nghĩa A[0] ma trận đơn vị In R lần 184 7.4.5 Quy nạp toán học (Chứng minh đoán) Để chứng minh P(n) với số nguyên dương n ≥ n , ta thực bước • Bước sở Chỉ P(n0) đúng; • Bước quy nạp Chứng minh MĐ kéo theo P(k) → P(k + 1) với n ≥ n0 7.4.6 Đệ quy a Định nghĩa đệ quy (ĐNBĐQ) Định nghĩa đệ quy định nghiã đối tượng qua nó, ĐNBĐQ Hàm số, Dãy số Tập hợp… Dùng bước để định nghĩa hàm xác định tập số nguyên không âm f(n) Bước sở Cho giá trị hàm n=0 – Bước đệ quy Cho quy tắc tính giá trị số nguyên – từ giá trị số nguyên nhỏ Ví dụ Hàm giai thừa F(n) = n! định nghĩa F(0) = F(n + 1) = (n + 1) F(n) Từ đó, để xác định giá trị hàm, giả sử F(3) 3! = F(3) = F(2) = F(1) = F(0) = = Ví dụ Dãy Fibonacci {fn} Dãy số f0, f1, f2, … định nghĩa đệ quy Cho f0 = 0; f1 = fn = fn-1 + fn-2 với n = 2, 3, … ( fn số cặp thỏ có đảo sau n tháng) b Các thuật toán đệ quy (TTĐQ) TTĐQ thuật toán giải toán cách rút gọn liên tiếp toán ban đầu tới toán có liệu đầu vào nhỏ Ví dụ Tìm thuật toán đệ quy tính giá trị an với a số thực, n số nguyên không âm 185 Thuật toán Thuật toán đệ quy tính an Procedure power (a: Thực khác 0; n: Nguyên không âm) if n = then power(a, n): = Ví dụ Tìm thuật toán đệ quy tính ƯSCLN hai số else power (a, n): b nguyên không âm a < b a, = a power(a, n -1) Thuật toán Thuật toán đệ quy tính Procedure ƯCLN(a, b: Các số nguyên không âm, a < b) if a = then ƯCLN(a, b):= b else ƯCLN(a, b):= ƯCLN(b mod a, a) ƯCLN(a, b) c So sánh Đệ quy Lặp Ví dụ Dùng thủ tục đệ quy Lặp tính hàm n! Thuật toán Thủ tục đệ quy tính hàm Giai thừa Procedure factorial (n:nguyên dương) if n = then factorial (n): = else factorial (n): = n factorial (n - 1) 186 Thuật toán Thủ tục lặp tính hàm Giai thừa Procedure iterative factorial (n: nguyên dương) x: = for i: = to n x: = i x {x n! } Ví dụ Dùng thủ tục Đệ Quy Lặp tính phần tử Dãy Fibonacci Thuật toán Thủ tục ĐQ tính số Fibonacci Procedure fibonacci (n: Nguyên không âm) if n = then fibonacci (0): = else if n = then fibonacci (1): =1 else fibonacci (n): = fibonacci (n - 1) + fibonacci (n - 2) Thuật toán Thủ tục lặp tính số Fibonacci Procedure iterative fibonacci (n: nguyên không âm) if n = then y: = else begin x: = y: = for i: = to (n - 1) begin z: = x + y x: = y 187 end end{y số Fibonacci thứ n } y: = z 7.5 CHỈNH HỢP VÀ TỔ HỢP SUY RỘNG 7.5.1 Chỉnh hợp lặp Định nghĩa Một chỉnh hợp lặp chập r từ n phần tử tập S có thứ tự gồm r thành phần mà thành phần phần tử S Một chỉnh hợp lặp chập r (a 1, a2, …, ar) ∈ S, i = 1, 2, , r (như lặp lại) Định lý Số chỉnh hợp lặp chập r từ n phần tử nr Ví dụ Từ Bảng chữ tiếng Anh, tạo xâu có độ dài m ( ĐS: 26m ) Ví dụ (lấy mẫu có hoàn lại) Tính xác suất lấy liên tiếp bóng đỏ khỏi bình kín chứa bóng đỏ bóng xanh sau lần lấy bóng lại bỏ trở lại bình Hướng dẫn Số cách lấy bóng đỏ 43 ; Toàn kết cục xảy 123 ; Vậy xác suất cần tìm 43/123 = (1/3)3 = 1/27 = 3,7% 7.5.2 Tổ hợp lặp Ví dụ Có cách lấy tờ giấy bạc từ két đựng loại tiền 1, ngàn (mỗi loại có tờ) Hướng dẫn Giả sử két có ngăn chứa loại tiền, ngăn phân cách – = vách ngăn mà ta biểu diễn đứng |, tờ giấy bạc biểu diễn * Mỗi cách lấy tổ hợp lặp chập từ phần tử số cách lấy C(3 + - 1, 2) = C(4, 2) = 188 Các cách Định nghĩa Một Tổ hợp lặp chập r từ n phần tử thứ tự gồm r phần tử từ tập {a1 , a2 , …, an} cho phần tử chọn pi lần ( pi ≥ 0) p1 + p2 + … + pn = r Ví dụ Trong đĩa hoa có táo, cam, lê, loại có Tính số cách lấy từ đĩa (thứ tự chọn không quan trọng, có loại riêng rẽ không phân biệt) Hướng dẫn Số cách lấy số tổ hợp có lặp chập từ phần tử { táo, cam, lê } C(3 + - 1, 4) = C(6, 4) = 6! / (4! 2!) =15 Định lý Số tổ hợp lặp chập r từ n phần tử C(n + r - 1, r) = (n + r -1)! / (r! (n - 1)!) = C(n + r - 1, n - 1) Ví dụ Tính số nghiệm nguyên không âm phương trình x + x2 + x3 =11 (*) Hướng dẫn Mỗi nghiệm (*) tương ứng với cách chọn 11 phần tử từ tập có loại, cho xi số phần tử loại i ( i = 1, 2, 3) Vậy số nghiệm (*) số tổ hợp lặp chập 11 từ tập có phần tử C(3 + 11 - 1, 11) = C( 13, 11) = 78 189 Lưu ý Nếu thêm điều kiện x1 ≥ 1, x2 ≥ 2, x3 ≥ 3, ta chọn 1, 2, phần tử tương ứng với loại, sau ta chọn thêm phần tử Khi số nghiệm C(3 + - 1, 5) = C( 7, 5) = 21 Ví dụ Tính số cách đặt 10 viên bi giống hệt vào ngăn phân biệt ? C(8 + 10 -1, 10) Công thức tính chỉnh hợp tổ hợp Chỉnh hợp chập r Không lặp Lặp nr Tổ hợp chập r Không lặp Lặp 7.5.3 Hoán vị với phần tử không phân biệt Ví dụ Có thể nhận xâu khác cách xếp lại chữ từ SUCCESS Hướng dẫn Xâu có độ dài 7, có C(7,3) cách chọn chỗ cho chữ S, có C(4,2) cách chọn chỗ cho chữ C, có C(2,1) cách chọn chỗ cho chữ U C(1,1) cách chọn chỗ cho chữ E Theo quy tắc nhân, số xâu khác C(7, 3)C(4, 2)C(2, 1)C(1, 1) = = = 420 Định lý n! n1!n ! n k ! Số hoán vị khác n phần tử, có ni phần tử thuộc loại i (với i = 1, 2, …, k n1 + n2 +…+ nk = n ) 190 Sự phân phối vật vào hộp Ví dụ Tính số cách chia cỗ 52 quân thành tay gồm quân cho người chơi ? Hướng dẫn Số cách chọn quân tương ứng người C(52, 5), C(47, 5), C(42, 5), C(37, 5) theo quy tắc nhân, tổng cộng C(52, 5) C(47, 5) C(42, 5) C(37, 5) = Định lý n! n1! n ! n k ! Số cách phân phối n vật khác vào k hộp khác cho có ni vật đặt vào hộp thứ i, vói i = 1, 2, …, k 7.5.4 Sinh hoán vị tổ hợp 9.5.4.1 Sinh hoán vị Bài toán Liệt kê hoán vị tập {1, 2, …, n} Xác lập thứ tự Theo thứ tự từ điển, hoán vị a1a2 … an gọi trước - (nhỏ hơn) hoán vị b1b2 … bn với k (1 ≤ k ≤ n), a = b1, a2 = b2, …, ak-1 = bk-1 ak < bk ( ký hiệu a1a2 … an ‹ b1b2 … bn ); Từ hoán vị nhỏ … (n - 1)n hoán vị lớn n(n - 1) … 2.1 - Thuật toán sinh hoán vị + Từ hoán vị a1a2 … an-1an < n(n -1) …2 + Tìm cặp số liền kề từ phải sang trái hoán vị mà số bên trái nhỏ số bên phải, giả sử < ai+1 + Tìm số nhỏ số số lớn a i tập số ai+1, ai+2, …, an Giả sử số ak + Đặt ak vào vị trí i, sau đặt số lại theo thứ tự tăng dần vào vị trí i + 1, i + 2, …, n Ví dụ Sinh hoán vị hoán vị 362541 191 Hướng dẫn Cặp số liền kề a3 = a4 = Số nhỏ số bên phải số mà lại lớn số Đặt số vào vị trí 3, đặt số 2, 5, theo thứ tự tăng dần vào ba vị trí lại 364125 Thủ tục Sinh hoán vị Để sinh n! hoán vị {1, 2, …, n}, ta hoán vị nhỏ 1.2 … n áp dụng liên tiếp thủ tục (n!-1) lần Ví dụ Liệt kê hoán vị {1, 2, 3} Hướng dẫn 123, 132, 213, 231, 312, 321 7.5.4.2 Sinh tổ hợp Bài toán Liệt kê tất tổ hợp phần tử thuộc tập hữu hạn A= {a1, a2, an }, tức liệt kê tất tập A (các phần tử tập lũy thừa A) Mỗi tập A đặt tương ứng - với xâu nhị phân độ dài n, từ đưa đến toán: Liệt kê xâu nhị phân độ dài n (b1b2 bn) - Xác lập thứ tự Xem xâu biểu diễn nhị phân số nguyên, giả sử N b ↔ b1b2 bn Nb’ ↔ b’1b’2 b’n ; Khi b1b2 bn < b’1b’2 b’n Nb < Nb’, xâu nhỏ 00 … - xâu lớn 11 … Thuật toán Sinh xâu Từ xâu b1b2 bn ≠ 11 … Xâu biểu diễn nhị phân Nb + Duyệt xâu từ phải qua trái, gặp ký tự thay tiếp tục duyệt gặp ký tự thay dừng lại Ví dụ Xâu 10 0010 0111 10 0010 1000 192 Procedure Sinh xâu (b1b2 bn ≠ 11…1) i: = n while bi = begin bi = i: = i-1 end bi = 7.5.4.3 Liệt kê tổ hợp chập r từ n phần tử Bài toán Cho X = {1, 2, …, n}, tổ hợp chập r biểu diễn gồm r phần tử xếp theo thứ tự tăng dần (a1, a2, , ar ) ≤ a1 < a2 < < ar ≤ n - Xác lập thứ tự theo thứ tự từ điển, từ Tổ hợp nhỏ (1, 2, …, r) Tổ hợp lớn (n - r + 1, n - r + 2, …, n - 1, n) - Thuật toán sinh tổ hợp từ tổ hợp chưa phải lớn (a1, a2, , ar ): Tìm từ bên phải dãy a1, a2, , ar phần tử ≠ n - r + i, sau thay phần tử kể từ đến cuối dãy + 1, + 2, …, + + r - i Procedure Sinh tổ hợp (a1a2 ar) i: = r while = n – r + i i: = i -1 for k: = i to r ak = + 1+ k - i 193 BÀI TẬP CHƯƠNG Chứng minh đẳng thức sau với n a) 1! + 2! + … + n n! = (n + 1)! – b) 12 + 22 + … + n2 = Tính tổng: T = Chứng minh tích ba số tự nhiên liên tiếp chia hết cho Tính tổng n số nguyên lẻ Xác định độ phức tạp thuật toán nhân ma trận Lập thuật toán tính tổng tất số nguyên mảng Lập thuật toán giải phương trình ax2 + bx + c = Lập thuật toán tính xn với x số thực n số nguyên Lập thuật toán tính tổng số lẻ dãy số nguyên 10 Lập thuật toán kiểm tra xem số có phải số phương không 194 TÀI LIỆU THAM KHẢO [1] Đỗ Đức Giáo, Toán Rời rạc ứng dụng Tin học, NXB Giáo dục, 2006 [2] Vũ Kim Thành, Toán Rời rạc, ĐH Nông nghiệp Hà Nội, 2008 [3] Nguyễn Đức Nghĩa , Toán rời rạc, Đại học Quốc Gia Hà Nội, 2003 [4] Đỗ Đức Giáo, Toán học rời rạc, Đại học Quốc Gia Hà Nội, 1998 [5] Đỗ Đức Giáo, Cơ sở toán lập trình, KH&KT Hà Nội, 1998 [6] Nguyễn Xuân Quỳnh, Cơ sở toán rời rạc ứng dụng, GDĐT,1993 195 ... học môn toán rời rạc trường bạn Hãy biểu diễn tập sau qua A B a) Tập hợp sinh viên năm thứ hai học môn toán rời rạc trường bạn (A ∩ B) b) Tập hợp sinh viên năm thứ hai trường bạn không học môn. .. thức tập hợp, hàm số, phương pháp đếm tập hợp Từ đó, sinh viên có nhìn tổng quan cấu trúc rời rạc để dựng lên tất cấu trúc khác 1.1 BIỂU DIỄN TẬP HỢP TRÊN MÁY TÍNH 1 1.Khái niệm tập hợp Các tập... Tập hợp sinh viên năm thứ hai trường bạn không học môn toán rời rạc (A B) c) Tập hợp sinh viên trường bạn năm thứ hai học tóan rời rạc (A ∪ B) 1 Tập hợp lũy thừa Cho tập S, tập lũy thừa S tập