Giáo trình Toán rời rạc
TRƯỜNG CAO ĐẲNG SƯ PHẠM BẾN TRE.TỔ TIN HỌCGIÁO TRÌNH TOÁN RỜI RẠCVÀ ỨNG DỤNG.Vương Đức Bình.Tài liệu lưu hành nội bộ.2003-20041 LỜI MƠÛối với người làm công nghệ thông tin thì ngoại trừ những kỹ năng cần thiết về sử dụng máy tính như sử dụng những phần mềm, những dòch vụ phổ biến trên Internet cho công việc thường ngày, còn phải có một hiểu biết khá đầy đủ về những lónh vực toán học có liên quan nhằm có thể tiếp cận sâu sắc hơn các quá trình xử lí thông tin. Nếu người sử dụng máy tính thông thường trong các văn phòng, chỉ cần một khoá học “mì ăn liền” nhằm hoàn thiện kỹ năng sử dụng một số ứng dụng nào đó là tạm đủ cho công việc, người làm công nghệ thông tin cần có một nền tảng lí luận về thông tin và xử lí thông tin đầy đủ để có thể chủ động tự đồng bộ được, đối phó được (và góp phần!) với những thay đổi chóng mặt về phần cứng lẫn phần mềm của ngành công nghệ thông tin. Do đó một hiểu biết tương đối về những ngành toán học có liên quan đến công nghệ thông tin là không thể thiếu được.ĐCó khá nhiều tài liệu về đề tài này1 để sinh viên có thể tham khảo nhưng các tài liệu đó hoặc khó kiếm hoặc nhanh chóng dẫn người mới tìm hiểu vào quá sâu của vấn đề khiến việc tiếp cận môn học gặp khó khăn. Vì vậy giáo trình này được soạn ra nhằm giúp sinh viên mới tìm hiểu khoa học này tiếp cận vấn đề dễ dàng và có hệ thống hơn. Mặt khác đây là một tài liệu dạng hỗ trợ học tập (nên cần phải) hết sức cô đặc vì vậy sinh viên cũng cần phải đọc thêm các tài liệu khác của thư viện.Tài liệu này tốt hơn hết là được giảng song song với việc học một ngôn ngữ lập trình để các ví dụ về giải thuật có thể được hiểu rõ ràng hơn. Tuy nhiên có khả năng người học chưa được học cụ thể một ngôn ngữ lập trình nên tác giả sẽ chỉ dùng mã giả tựa-Pascal để minh hoạ các giải thuật. Sau này - khi cần – người học sẽ chuyển các giải thuật đó thành chương trình trong một ngôn ngữ cụ thể (dó nhiên phải có sự điều chỉnh đôi chút cho phù hợp với ngôn ngữ được dùng).Vương Đức Bình.1 Có thể đọc các tài liệu sau đây:1. Mathamatics for computer science. (Tom Leighton – Massachusetts Institute of Technology).2. Toán rời rạc. (Nguyễn Đức Nghóa – Nguyễn Tô Thành NXB Giáo Dục 1997)3. Discrete Mathematics and its applications (Rosen K. H. Có bản dòch của Phạm Văn Thiều – Đặng Hữu Thònh - NXB Khoa học và kỹ thuật 1998)4. Lý thuyết Ôtômat hữu hạn và thuật toán (Phan Đình Diệu – NXB ĐHTHCN – Hà nội – 1977).5. Symbolic Logic and Mechanical Theorem Proving – CHIN-LIANG CHANG & RICHARD C. T. LEE.6. Lý thuyết đồ thò – PTS. Nguyễn Cam & PTS. Chu Đức Khánh – NXB Tp Hồ Chí Minh – 1999.2 QUI ƯỚC VỀ VIẾT TẮT VÀ KÍ HIỆU.ie id est Có nghóa là:eg exam gratia Ví dụ như:qed quod erat demonstrandum Đó là điều phải chứng minh.3 Chương ICÁC KIẾN THỨC CƠ SƠÛ.I. Lô gích mệnh đề:o Mệnh đề.Một phát biểu (statement) được gọi là một mệnh đề (proposition) nếu phát biểu này có thể được lượng giá là đúng (TRUE) hoặc sai (FALSE); chúng ta không xét đến các phát biểu có thể vừa đúng vừa sai, hoặc không thể xác đònh tính đúng sai. Tính đúng sai của một phát biểu không phải do từ ngữ mà do ý nghóa của phát biểu mà có. Chúng ta cũng biết một câu nói, một phát biểu có thể chứa trong nó đến ba chức ngôn ngữ:Chức mệnh lệnhChức cảm xúcChức miêu tả.Vì vậy phát biểu: “Anh phải đến đó trước 6 giờ!” nếu xét về chức mệnh lệnh không thể cho phép ta xác đònh tính đúng sai mà đơn thuần chỉ là một câu ra lệnh, buộc phải thực hiện một yêu cầu! Tương tự, phát biểu “Tình yêu đẹp như hoa hồng buổi sớm” thuần tuý chỉ mang tính cảm xúc - nó chỉ đem lại một cảm xúc mơ hồ êm dòu nào đó - không đem lại một giá trò chân lí đúng hay sai; nhưng phát biểu “5 < 7” hoàn toàn là một miêu tả về quan hệ giữa hai số, tính đúng sai của nó do lòch sử hoạt động thực tiển của con người xác nhận2. Tính chân lí - do đó - không phụ thuộc vào ngôn ngữ mang phát biểu. Ví dụ các phát biểu sau:I am studying logic.J’ étudie la logique.Ich studiere Logik.Tôi học môn lô gích.Hoc(Tôi, Lôgich)Là năm phát biểu khác nhau, nhưng chỉ là cùng một mệnh đề.Môn học nghiên cứu về các quan hệ giữa các mệnh đề gọi là môn logic mệnh đề (propositional logic).2 “Hoạt động thực tiển của con người đã làm cho ý thức của con người lập di lập lại hàng nghìn lần những cách thức lôgích khác nhau đặng làm cho những cách thức này có thể có những ý nghóa của công lí” – (Lênin).4 o Các phép toán lô gích và phép toán bit.Để dễ dàng trong các suy luận chúng ta sẽ kí hiệu các mệnh đề bằng các chữ cái hoa. Ví dụ:P: Tuyết có màu trắng.Q: Đường là một hydrocarbon.Nếu một mệnh đề P là đúng thì ta nói P có giá trò chân lí là TRUE (hoặc trong phần lớn các trường hợp sau sẽ được ghi giá trò là 1). Nếu một mệnh đề P là sai thì ta nói P có giá trò chân lí là FALSE (hoặc trong phần lớn các trường hợp sau sẽ được ghi giá trò là 0).Với các qui ước đó về ghi giá trò chân lí của các mệnh đề, chúng ta có thể đònh nghóa một số phép toán mệnh đề như sau:Phép toán VÀ (dùng toán tử AND hoặc ^), phép toán HOẶC (dùng toán tử OR hoặc v), phép toán HOẶC LOẠI (eXclusive OR - dùng toán tử XOR), phép KÉO THEO (dùng toán tử ⇒) và phép phủ đònh (negation – dùng toán tử NOT). Bảng chân trò cho các phép toán nói trên ghi trong bảng sau đây:P Q P AND Q P OR Q P XOR Q P⇒Q0 0 0 0 0 10 1 0 1 1 11 0 0 1 1 01 1 1 1 0 1Các toán tử (operator) AND, OR, XOR, ⇒ là các toán tử hai ngôi (binary operator), ie: cần đến hai toán hạng (operand). Phép toán NOT là phép toán một ngôi(unary operator):P NOT P0 11 0Lưu ý rằng hai mệnh đề P và Q là phủ đònh lẫn nhau nếu P đúng thì Q phải sai (và ngược lại). Ví dụ : Hai mệnh đề sau đây là phủ đònh lẫn nhau:P: Năm 2002 là năm nhuận.Q: Năm 2002 không phải năm nhuận.Nhưng hai mệnh đề sau đây không phải là hai mệnh đề phủ đònh lẫn nhau:R: Số hàng tồn kho lớn hơn 300 đơn vò.S: Số hàng tồn kho bằng đúng 300 đơn vò.Mà chỉ là hai mệnh đề tương phản (Vì sao? Hãy tự nghó ra thêm một ví dụ khác!).5 Trong kỹ thuật các phép toán trên có thể dùng để biểu diễn sơ đồ các mạch điện:Hình 1: Mạch điện hiện thực cho phép toán logich L = A AND B với mỗi công tắc lấy giá trò 1 nếu công tắc đó đóng và lấy giá trò 0 nếu công tắc đó mở. Ta thấy đèn L chỉ sáng lên khi cả hai công tắc A và B đều đóng.Hình 2: Mạch điện hiện thực cho phép toán logich L = A OR B . Ta thấy đèn L sáng lên khi một trong hai công tắc trong trạng thái đóng.Có thể thấy rằng các phép toán lôgich AND, OR, XOR, NOT nói trên tác động lên các mệnh đề để cho kết quả cũng là một mệnh đề. Nói cách khác các phép toán đó có tính chất “đóng kín” trên tập hợp các mệnh đề. Cũng giống như trong đại số, điều đó dẫn chúng ta đến khả năng xây dựng các biểu thức mệnh đề (hay hàm của các mệnh đề), ie: Hàm mà các tham biến là các mệnh đề, ví dụ:X= (A and B ) OR (NOT C and D) OR (E and F). (*)Trong ví dụ trên biến X là hàm của các biến A,B,C,D,E,F và có thể viết lại dưới dạng:X=f(A,B,C,D,E,F)=(A and B ) OR (NOT C and D) OR (E and F) (*)Vế phải của phương trình (*) chính là một biểu thức mệnh đề Độ ưu tiên của toán tử:Trong một biểu thức mệnh đề gồm nhiều toán hạng và toán tử, các phép toán được thực hiện theo thứ tự ưu tiên như sau: Toán tử () trong cùng nếu có sẽ được thực hiện trước.6 Nếu không có toán tử () thì thứ tự ưu tiên thực hiện là: NOT > AND > OR> ⇒. Trên một dãy không có cặp () các toán tử cùng độ ưu tiên thì phép toán bên trái được thực hiện trước.Như vậy phương trình (*) nói trên nếu được viết lại:X= A and B OR NOT C and D OR (E and F) (**)thì sẽ được thực hiện theo thứ tự sau: (E and F)A and B .NOT C NOT C and D (A and B) OR (NOT C and D) (A and B) OR (NOT C and D) OR (E and F)Tuy nhiên cần lưu ý trong một số ngôn ngữ lập trình – chẳng hạn ngôn ngữ PASCAL - việc bỏ bớt các toán tử () như trong biểu thức (**) là không được phép mà phải viết tường minh như biểu thức (*)Trong trình bày trên, thay vì ghi các giá trò TRUE hoặc FALSE trong bảng chân trò chúng ta đã dùng các kí hiêu 1 hoặc 0 để thay thế, điều này cho phép nghó đến các phép toán logich NOT, AND,OR, XOR có thể được mở rộng trên tập hợp các số được biểu diễn trong hệ nhò phân (các phép toán bit). Để đảm bảo tính hệ thống của giáo trình, đề nghò sinh viên tham khảo về vấn đề này trong chương II (phần số nguyên)o Tương đương lô gích.Hai biểu thức logich f(X,Y,Z, .) và g(X,Y,Z, .) gọi là tương đương lôgich nếu chúng nhận được cùng một giá trò ứng với mỗi bộ giá trò có thể có của (X,Y,Z, .). Ví dụ 1: Xét hai biểu thức lôgich:f(A,B,C)=A AND (B OR C) (1)g(A,B,C)=(A AND B) OR (A AND C). (2)Việc chứng minh f và g là tương đương lôgich có thể được thực hiện “thô” nhờ vào việc thiết lập bảng chân trò như sau:A B C B OR CA AND (B OR C)A AND B A AND C(A AND B) OR (A AND C)0 0 0 000 000 0 1 100 000 1 0 100 000 1 1 100 007 1 0 0 000 001 0 1 110 111 1 0 111 011 1 1 111 11Theo bảng chân trò trên, với mỗi bộ giá trò (A,B,C) chúng ta thấy giá trò ở các hàng tương ứng trong hai cột thứ 5 và thứ 7 là như nhau, vì vậy hai biểu thức (1) và (2) là tương đương lôgich.Ví dụ 2: Xét hai biểu thức lôgích.f(X,Y): X ⇒ Yg(X,Y): Y OR (NOT X)Cùng với cách làm như trên ta có thể kiểm chứng f(X,Y) và g(X,Y) là tương đương lôgich.Kí hiệu:Khi hai biểu thức lôgich f và g là tương đương ta ghi: f ≈ gKhái niệm tương đương lôgich là rất quan trọng trong kỹ thuật máy tính vì nó liên quan đến việc tối ưu hoá chương trình máy tính (phần mềm) cũng như đơn giản hoá các mạch điện tử (phần cứng). Trong ví dụ 1 biểu thức (1) rõ ràng là đơn giản hơn biểu thức (2) còn trong ví dụ 2 sự tương đương lôgích cho phép chúng ta thay mọi biểu thức chứa toán tử ⇒ thành biểu thức chỉ chứa hai toán tử OR và NOT, nghóa là giảm bớt được một dạng toán tử. Chúng ta còn cần xây dựng những công cụ mạnh hơn để thực hiện các quá trình đơn giản các biểu thức lôgich này và sẽ được trình bày trong các chương sau.o Vò ngữ và lượng từ.Trong lôgich mệnh đề chúng ta xây dựng nên các biểu thức lôgich bằng những mệnh đề. Các phép toán mệnh đề xử lí các mệnh đề như những “nguyên tử” và bỏ qua cấu trúc toàn thể của quá trình suy luận. Tuy nhiên, có nhiều trường hợp việc diễn đạt các ý tưởng không thể thực hiện một cách đơn giản như vậy. Ví dụ diễn đạt sau đây:P: Mọi người đều chết.Q: Socrate là người.R: Socrate phải chết.Tính đúng sai của mệnh đề R chỉ có thể được xác lập trong khung quan hệ cấu trúc với hai mệnh đề được phát biểu trước đó. Trong ví dụ này tính đúng đắn của R được dẫn xuất từ tính đúng đắn của P và Q và bản thân cấu trúc của suy luận.Xét ví dụ vui trong chuyện dân gian:P: Vợ mình là con người ta.Q: Con mình do vợ đẻ ra.R: Suy đi nghó lại chẳng bà con chi.8 Tính đúng sai của mệnh đề cuối cùng đặt ra nhiều vấn đề phải suy nghó!Để vượt qua khó khăn đó, hãy xét tiếp một số ví dụ:- Xem phát biểu P : “x lớn hơn 3”. Phát biểu này chưa thể xác đònh được tính đúng sai trừ khi biết rõ giá trò hoặc tập giá trò của x. Khi đó phát biểu P đúng hay sai phụ thuộc vào x. Có thể nói P là một hàm3 theo biến x: P(x). Một khi biến x được thay bằng một giá trò cụ thể (ví dụ x=7) thì khi đó phát biểu P(x) trở thành P(7): “7 lớn hơn 3” là một mệnh đề.- Xem hai phát biểu: “Mọi số nguyên đều có thể phân tích được thành tích các số nguyên tố” và “Ai cũng chết”. Hai phát biểu này đều mang một yếu tố có tính chất đònh lượng “Mọi số nguyên” “Mọi người”. Để kiểm tra tính đúng dắn của phát biểu này hoặc phải kiểm tra tất cả trường hợp (mọi số, mọi người) hoặc phải chỉ ra được một (và cũng chỉ cần một mà thôi) trường hợp không thoả mãn- Xem phát biểu: “Có ít nhất một trường hợp a bằng 7”. Phát biểu này mang một yếu tố có tính chất đònh lượng “Có ít nhất một”. Khác với phát biểu thứ hai, để xác đònh tính đúng sai của phát biểu này chỉ cần chỉ ra một trường hợp giá trò của a thoả mãn (a=7) là đủ.Loại phát biểu như trong ba ví dụ trên được gọi là các vò từ. Việc xác nhận tính đúng sai của các vò từ luôn luôn cần đến các lượng tử (quantifier): Lượng tử phổ dụng (universal quantifier): Với mọi – kí hiệu: ∀Lượng tử tồn tại (existential quantifier): Tồn tại ít nhất một – kí hiệu:∃Vậy:Phát biểu: “Ai cũng chết” có thể được viết lại:∀x, P(x) trong đó P(x) là “x phải chết”Phát biểu: “Có ít nhất một trường hợp a bằng 7” có thể được viết lại:∃a, Q(a) trong đó Q(a) là “a=7”.Một khi vò từ đi kèm theo lượng tử nó trở thành một mệnh đề nên có thể áp dụng các phép toán mệnh đề như vừa nghiên cứu trên. Tuy nhiên phủ đònh của sự phổ biến một tính chất nào đó chính là sự tồn tại ít nhất một trường hợp ngược lại. Và phủ đònh của sự tồn tại ít nhất một trường hợp có tính chất nào đó chính là sự phổ biến của trường hợp ngược lại. Từ đó ta có hai tương đương logic sau:NOT (∀x, P(x)) tương đương với (∃x,NOT P(x)) NOT (∃x,P(x)) tương đương với (∀x, NOT P(x))3 Về khái niệm hàm xin xem tiếp trong phần II của chương này.9 Ví dụ:Phủ đònh của:)x*t)x((:0,00δ<−ε+>δ∃>ε∀Chính là:)x*t)x((:0,00δ≥−ε+>δ∀>ε∃Các vấn đề liên quan khác về lôgich vò từ sẽ còn được trình bày tiếp trong chương III: SUY LUẬN TOÁN HỌCII. Tập hợp và hàm:o Khái niệm tập hợp.“Tập hợp” là một khái niệm ban đầu của toán học, không được đònh nghóa (và cũng không thể đònh nghóa được)4. Có thể quan niệm tập hợp như một sự gom góp các đối tượng có chung một tính chất nào đó. Các đối tượng chứa trong tập hợp gọi là các phần tử của tập hợp. Có thể biểu diễn tập hợp bằng giản đồ Venn. Giản đồ Venn là một đường cong phẳng khép kín không tự cắt. Giản đồ Venn chia mặt phẳng ra làm hai vùng: vùng bên trong chứa các phần tử của tập hợp, vùng bên ngoài chứa các phần tử không thuộc tập hợp.x A xBCó vấn đề khó khăn khi xác đònh phần tử nào là không thuộc tập hợp5, vì vậy người ta thường đặt các tập hợp đang xét vào “bên trong” một tập hợp “bao trùm” tất cả các tập hợp đó – gọi là tập Vũ trụ (hay tập qui chiếu ).A B U4 Về vấn đề này có thể tìm hiểu sâu thêm về nghòch lí Bertrand Russel trong mọi giáo trình chuyên về lí thuyết tập hợp.5 Khi thủ tướng Malaysia Mahathir Mohamed phát biểu rằng: “Ông Ariel Sharon – thủ tướng Israel – không phải là con người” thì ta gặp ngay khó khăn trong việc hiểu câu nói này. Ông Sharon không thuộc tập hợp các con người vậy ông là cây cối hay là đất đá? Báo Tuổi Trẻ đã thừa cơ diễn giải câu nói này thành:”Thủ tướng Malaysia Mahathir Mohamed đã phát biểu: “Ông Ariel Sharon – thủ tướng Israel – là đồ thú vật” “. Một trường hợp sử dụng lôgich thật hay và cũng thật “ác liệt”!10B là phần tử của tập hợp. A không phải là phần tử của tập hợp. [...]... tương ứng 0000 .0 00 01 .1 0 010 .2 0 011 .3 010 0 .4 7 Tuy nhiên tập hợp rỗng được kể là tập hữu hạn 15 010 1 .5 011 0 .6 011 1 .7 10 00 .8 10 01 .9 10 10 .10 10 11 .11 11 00 .12 11 01 .13 11 10 .14 11 11 .15 Như trong ví dụ trên các số có thể biểu diễn qua dạng nhò phân nên ta cũng có thễ mở rộng các phép toán lôgích AND, OR, XOR, NOT... đổi Bảng sau đây cho thấy kích thước lớn nhất của bài toán ta có thể giải được khi dùng từng chương trình nói trên Thời gian chạy 10 0n 5n2 n3/2 2n Kích thước chương trình lớn nhất (n) cho phép thực hiện được trong 10 3 giây 10 14 12 10 Kích thước chương trình lớn nhất (n) cho 10 4 giây 10 0 45 27 13 Tỉ số độ tăng kích thước của bài toán 10 .0 3.2 2.3 1. 3 Quan sát bảng này cho thấy khi thay máy mới thì giải... dụ: Như trong ví dụ vừa nêu, ta có: Dùng phép toán OR đối với hai dãy (*) và (**) ta được dãy : 11 111 1 01 tương ứng với A ∪ B= { 1, 2,3,4,5,6,8 } Dùng phép toán OR đối với hai dãy (*) và (***) ta được dãy : 010 111 01 tương ứng với A ∪ C= { 2,4,5,6,8 } Dùng phép toán AND đối với hai dãy (*) và (**) ta được dãy : 010 00000 tương ứng với A ∩ B= { 2 } Để tính được tập A\C ta cần lưu ý rằng: A\C=A ∩ (U\C) Với tập... là tập các phần tử không thuộc về C (hay còn gọi là phần bù của C trong U) Để tính được phần bù của C trong U ta dùng phép toán NOT trên dãy biễu diễn của C: NOT ( 010 010 01) =10 110 110 (phép toán này còn được gọi là phép đảo bit hoặc phép lấy bù 1 của dãy bit 010 010 01) Vậy: U\C= { 1, 3,4,6,7 } Người đọc bây giờ có thể kiểm chứng kết quả cho A\C mà không gặp khó khăn gì o Ánh xạ ngược và ánh xạ hợp thành... diễn tập A là 0 1 0 1 0 1 0 1 Xét B = { 1, 2,3,5 } thì dãy nhò phân biểu diễn tập B là: 1 1 1 0 1 0 0 0 Xét C= { 5,2,8 } thì dãy nhò phân biểu diễn tập C là: 0 1 0 0 1 0 0 1 (*) (**) (***) Với cách biểu diễn như vậy thì có thể chuyển các phép toán tập hợp như phép hợp, giao, hiệu của hai tập hợp thành tương ứng với các phép toán bit OR, AND, Ví dụ: Như trong ví dụ vừa nêu, ta có: Dùng phép toán OR đối với... thời gian chạy chương trình là F(n)=2n, còn cách sắp xếp H với cùng bộ dữ liệu như vậy có thời gian chạy chương trình là H(n) =10 0n Thời gian chạy chương trình F(n) 3000 2000 H(n) 10 00 0 5 10 15 20 Kích thước dữ liệu Có thể quan sát thấy với n nhỏ hơn 10 thì cách sắp xếp F là tốt hơn nhưng khi n vượt quá 10 thì F tăng nhanh “chóng mặt” và lựa chọn H là tốt hơn Thời gian chạy của một chương trình F phụ... bài toán với dữ liệu đầu vào (input) có kích thước xác đònh theo các thuật toán đó là tổng số các bước cần thiết, nên phải đánh giá O-lớn cho từng thuật toán đã sử dụng rồi tổng hợp chúng lại Đònh lí: Cho f1(x) là f2(x) theo thứ tự đó là O(g1(x)) và O(g2(x)) Ta có: (f1+f2)(x) là O(max(g1(x),g2(x))) (f1.f2)(x) là O(g1(x)g2(x)) (1) (2) Chứng minh: f1(x) là O(g1(x)) nên theo đònh nghóa: ∃ C1, ∃ k1 :... nghóa: ∃ C1, ∃ k1 : f 1 ( x ) ≤ C1 g 1 ( x ) với ∀ x ≥ k1 (*) f2(x) là O(g2(x)) nên theo đònh nghóa: ∃ C2, ∃ k2 : f 2 ( x ) ≤ C 2 g 2 ( x ) với ∀ x ≥ k2 (**) Chọn: C=max (C1,C2) và ko=max(k1,k2), do (*) và (**) ta có: ∃ C, ∃ ko : (f 1 + f 2 )( x ) ≤ f 1 ( x ) + f 2 ( x ) ≤ C1 g 1 ( x ) + C 2 g 2 ( x ) ≤ 2C max( g 1 ( x ) , g 2 ( x ) ) ≤ 2C max(g 1 ( x ), g 2 ( x )) ≤ C 0 max(g 1 ( x ), g 2 ( x )) với... Thông thường, thời gian chạy chương trình không phụ thuộc chính xác vào chính các dữ liệu đã nhập mà vào “kích thước” của dữ liệu nhập Ví dụ trong bài toán nêu trên nếu bộ dữ liệu nhập 20 là 2, 1, 2, 1, 3, 7, 5, 4 (kích thước bộ dữ liệu nhập là 8) thì kết xuất có được sau khi thực hiện chương trình là 1, 1, 2, 2, 3, 4, 5, 7 Rõ ràng nếu bộ dữ liệu nhập “ngay từ ban đầu” đã là 1, 1, 2, 2, 3, 4, 5, 7 thì thời... biểu diễn qua dạng nhò phân nên ta cũng có thễ mở rộng các phép toán lôgích AND, OR, XOR, NOT cho các số (gọi là các phép toán bit) Ví dụ: 12 and 5 được tính như sau: 12 dec = 1 0 0 1 0 1 bin 0 5 dec = 1 1 0 0 bin Dùng phép toán AND cho từng bit: Kết quả: 0 bin 12 and 5 = 4 Các phép toán khác thực hiện tương tự Biễu diễn các tập hữu hạn trên máy tính: Có nhiều cách hiện thực khái niệm tập hợp (các tập . AND B) OR (A AND C)0 0 0 000 000 0 1 100 000 1 0 10 0 000 1 1 10 0 007 1 0 0 000 0 01 0 1 110 11 1 1 0 11 1 011 1 1 11 1 11 Theo bảng chân trò trên, với mỗi bộ. P⇒Q0 0 0 0 0 10 1 0 1 1 11 0 0 1 1 01 1 1 1 0 1Các toán tử (operator) AND, OR, XOR, ⇒ là các toán tử hai ngôi (binary operator), ie: cần đến hai toán hạng