Giáo trình hướng dẫn học tập Toán rời rạc - Nguyễn Duy Phương

HC VIN CÔNG NGHBƯU CHÍNH VIN THÔNG  
- - - - - - -  
- - - - - - -  
SÁCH HƯỚNG DN HC TP  
TOÁN RI RC  
Biên son : Ths. NGUYN DUY PHƯƠNG  
Lưu hành ni bộ  
HÀ NI - 2006  
LI GII THIU  
Toán ri rc là mt lĩnh vc nghiên cu và xlý các đối tượng ri rc dùng để đếm các đối  
tượng, và nghiên cu mi quan hgia các tp ri rc. Mt trong nhng yếu tlàm Toán ri rc  
trnên quan trng là vic lưu tr, xlý thông tin trong các hthng máy tính vbn cht là ri  
rc. Chính vì lý do đó, Toán hc ri rc là mt môn hc bt buc mang tính cht kinh đin ca các  
ngành Công nghthông tin và Đin tVin thông. Tài liu hướng dn môn hc Toán hc ri rc  
được xây dng cho hệ đào to txa Hc vin Công nghBưu chính Vin thông được xây dng  
da trên cơ skinh nghim ging dy môn hc và kế tha tgiáo trình “Toán hc ri rc ng  
dng trong tin hc” ca Kenneth Rossen. Tài liu được trình bày thành hai phn:  
Phn I trình bày nhng kiến thc cơ bn vlý thuyết thp thông qua vic gii quyết bn  
bài toán cơ bn đó là: Bài toán đếm, Bài toán tn ti, Bài toán lit kê và Bài toán ti ưu.  
Phn II trình bày nhng kiến thc cơ bn vLý thuyết đồ th: khái nim, định nghĩa, các  
thut toán trên đồ th, đồ thEuler, đồ thHamilton. Mt sbài toán có ng dng thc tin quan  
trng khác ca lý thuyết đồ thcũng được chú trng gii quyết đó là Bài toán tô màu đồ th, Bài  
toán tìm đường đi ngn nht và Bài toán lung cc đại trong mng.  
Trong mi phn ca tài liu, chúng tôi cgng trình bày ngn gn trc tiếp vào bn cht  
ca vn đề, đồng thi cài đặt hu hết các thut toán bng ngôn nglp trình C nhm đạt được hai  
mc tiêu chính cho người hc: Nâng cao tư duy toán hc trong phân tích, thiết kế thut toán và  
rèn luyn knăng lp trình vi nhng thut toán phc tp. Mc dù đã rt cn trng trong quá trình  
biên son, tuy nhiên tài liu không tránh khi nhng thiếu sót và hn chế. Chúng tôi rt mong  
được sgóp ý quí báu ca tt cả đọc givà các bn đồng nghip. Mi góp ý xin gi v: Khoa  
Công nghThông tin - Hc vin Công nghBưu chính Vin thông.  
Hà Ni, tháng 05 năm 2006  
Chương 1: Nhng kiến thc cơ bn  
PHN I: LÝ THUYT THP  
CHƯƠNG I: NHNG KIN THC CƠ BN  
Ni dung chính ca chương này đề cp đến nhng kiến thc cơ bn vlogic mnh đề và lý  
thuyết tp hp. Bao gm:  
9
9
9
9
Gii thiu tng quan vlý thuyết thp.  
Nhng kiến thc cơ bn vlogic.  
Nhng kiến thc cơ bn vlý thuyết tp hp.  
Mt số ứng dng ca logic và lý thuyết tp hp trong tin hc.  
Bn đọc có thtìm thy nhng kiến thc sâu hơn và chi tiết hơn trong các tài liu [1] và [2]  
ca tài liu tham kho.  
1.1. GII THIU CHUNG  
Thp là mt lĩnh vc quan trng ca toán hc ri rc đề cp ti nhiu vn đề khác nhau  
ca toán hc. Lý thuyết Thp nghiên cu vic phân bcác phn tvào các tp hp. Thông  
thường các phn tca tp hp là hu hn và vic phân bchúng phi thomãn nhng điu kin  
nht định nào đó tutheo yêu cu ca bài toán nghiên cu. Mi cách phân bố được coi là mt  
“cu hình ca thp”. Nguyên lý chung để gii quyết bài toán thp được da trên nhng  
nguyên lý cơ sở đó là nguyên lý cng, nguyên lý nhân và mt snguyên lý khác, nhưng mt đặc  
thù không thtách ri ca toán hc thp đó là vic chng minh và kim chng các phương pháp  
gii quyết bài toán không thtách ri máy tính.  
Nhng dng bài toán quan trng mà lý thuyết thp đề cp đó là bài toán đếm, bài toán lit  
kê, bài toán tn ti và bài toán ti ưu.  
Bài toán đếm: đây là dng bài toán nhm trli câu hi “có bao nhiêu cu hình thomãn  
điu kin đã nêu?”. Bài toán đếm được áp dng có hiu quvào nhng công vic mang tính cht  
đánh giá như xác sut ca mt skin, độ phc tp thut toán.  
Bài toán lit kê: bài toán lit kê quan tâm đến tt ccác cu hình có thđược, vì vy li  
gii ca nó được biu din dưới dng thut toán “vét cn” tt ccác cu hình. Bài toán lit kê  
thường được làm nn cho nhiu bài toán khác. Hin nay, mt sbài toán tn ti, bài toán ti ưu,  
bài toán đếm vn chưa có cách nào gii quyết ngoài phương pháp lit kê. Phương pháp lit kê  
càng trnên quan trng hơn khi nó được htrbi các hthng máy tính.  
5
Chương 1: Nhng kiến thc cơ bn  
Bài toán ti ưu: khác vi bài toán lit kê, bài toán ti ưu chquan tâm ti cu hình “tt  
nht” theo mt nghĩa nào đó. Đây là mt bài toán có nhiu ng dng thc tin và lý thuyết thp  
đã đóng góp mt phn đáng ktrong vic xây dng các thut toán để đưa ra được nhng mô hình  
ti ưu.  
Bài toán tn ti: nếu như bài toán đếm thc hin đếm bao nhiêu cu hình có thcó, bài  
toán lit kê: lit kê tt ccác cu hình có thcó, bài toán ti ưu chra mt cu hình tt nht thì bài  
toán tn ti gii quyết nhng vn đề còn nghi vn nghĩa là ngay kcvn đề có hay không mt  
cu hình cũng chưa biết. Nhng bài toán này thường là nhng bài toán khó, vic sdng máy tính  
để chng tbài toán đó tn ti hay không tn ti ít nht (hoc không) mt cu hình càng trnên  
hết sc quan trng.  
1.2. NHNG KIN THC CƠ BN VLOGIC  
Các qui tc cơ bn ca Logic cho ta ý nghĩa chính xác ca các mnh đề. Nhng qui tc này  
được sdng gia các lp lun toán hc đúng và không đúng. Vì mc tiêu cơ bn ca giáo trình  
này là trang bcho sinh viên hiu và xây dng được nhng phương pháp lp lun toán hc đúng  
đắn, nên chúng ta sbt đầu nghiên cu toán hc ri rc bng nhng kiến thc cơ bn ca môn  
logic hc.  
Hiu được phương pháp lp lun toán hc có ý nghĩa hết sc quan trng trong tin hc.  
Nhng qui tc ca logic chính là công ccơ sở để chúng ta có thxây dng nên các ngôn nglp  
trình, các mng máy tính, kim chng tính đúng đắn ca chương trình và nhiu ng dng quan  
trng khác.  
1.2.1. Đnh nghĩa & phép toán  
Đối tượng nghiên cu ca logic hc là nhng mnh đề. Mt mnh đề được hiu là mt câu  
khng định hoc đúng hoc sai chkhông thva đúng va sai.  
Ví d: Nhng câu khng định sau đây là mt mnh đề:  
ƒ “Hà Ni là thủ đô ca Vit Nam.”  
ƒ 1 + 1 = 2  
ƒ 2 + 2 = 3  
Các mnh đề Hà Ni là thủ đô ca Vit Nam”, “1 +1 =2 “là nhng mnh đề đúng, mnh  
đề “2 +2 =3” là sai. Nhưng nhng câu trong ví dsau skhông phi là mt mnh đề vì nó nhng  
câu đó không cho ta khng định đúng cũng chng cho ta khng định sai.  
ƒ “Bây gilà my gi?”  
ƒ “Hãy suy nghĩ điu này cho klưỡng”  
ƒ x +1 =2  
ƒ x + y = z  
6
Chương 1: Nhng kiến thc cơ bn  
Ta ký hiu nhng chcái A, B, C, D, p, q, r, s . . . là nhng mnh đề. Giá trca mt mnh  
đề đúng được ký hiu là T, giá trmnh đề sai được ký hiu là F. Tp giá tr{ T, F } còn được gi  
là giá trchân lý ca mt mnh đề.  
Định nghĩa 1. Mnh đề p tuyn vi mnh đề q (ký hiu p p) là mt mnh mà nó chnhn  
giá trT khi và chkhi ít nht mt trong hai mnh đề p, q nhn giá trT. Mnh đề p q nhn giá  
trF khi và chkhi cp, q đều nhn giá trF.  
Định nghĩa 2. Mnh đề p hi mnh đề q (ký hiu p q ) là mt mnh đề mà nó chnhn  
giá trT khi và chkhi p, q nhn giá trT. Mnh đề p q nhn giá trF khi và chkhi hoc p, q,  
hoc chai nhn giá trF.  
Định nghĩa 3. Phủ định mnh đề p (kí hiu ¬p) là mt mnh đề nhn giá trF khi và chkhi  
mnh đề p nhn giá trT, nhn giá trF khi và chkhi p nhn giá trT.  
Định nghĩa 4. Mnh đề tuyn loi ca p và q, được ký hiu là pq, là mt mnh đề chỉ  
đúng khi mt trong p hoc q là đúng và sai trong các trường hp khác còn li.  
Định nghĩa 5. Mnh đề p suy ra mnh đề q (ký hiu p q) nhn giá T khi và chkhi p  
nhn giá trF hoc p q cùng nhn giá trT. Mnh đề pq nhn giá trF khi và chkhi p nhn  
giá trT q nhn giá trF.  
Định nghĩa 6. Hai mnh đề p, q được gi là kéo theo nhau (ký hiu: p q) có giá trị đúng  
khi p và q có cùng giá trchân lý và sai trong các trường hp khác còn li.  
Các phép toán: , , ¬, ,,có thể được định nghĩa thông qua bng giá trchân lý sau:  
Bng 1.1: Bng giá trchân lý ca các phép toán , , ¬, , ,⇔  
p
T
T
F
F
q
T
F
T
F
pq  
T
pq  
T
¬p  
F
pq  
F
pq  
T
pq  
T
F
F
T
T
F
F
T
F
T
F
T
T
T
F
F
T
F
T
1.2.2. Stương đương gia các mnh đề  
Mt vn đề hết sc quan trng trong lp lun toán hc là vic thay thế này bng mt mnh  
đề khác có cùng giá trchân lý. Hai mnh đề có cùng mt giá trchân lý chúng ta có thhiu theo  
cách thông thường là chúng tương đương nhau vngnghĩa. Do vy, ta stiếp cn và phân loi  
các mnh đề phc hp thông qua các giá trchân lý ca chúng.  
Định nghĩa 1. Mt mnh đề phc hp mà luôn luôn đúng vi bt kcác giá trchân lý ca  
các mnh đề thành phn ca nó được gi là hng đúng (tautology). Mt mnh đề luôn luôn sai vi  
mi giá trchân lý ca các mnh đề thành phn ca nó được gi là mâu thun.  
7
Chương 1: Nhng kiến thc cơ bn  
Ví d: mnh đề phc hp p ∨¬q là hng đúng, p ∧ ¬q là mâu thun vì giá trchân lý ca  
các mnh đề trên luôn luôn đúng, hoc luôn luôn sai như được chra trong bng 1.2.  
Bng 1.2. Ví dvmnh đề hng đúng & mnh đề mâu thun  
p
T
F
¬p  
F
p ∨¬q  
p∧¬q  
T
T
F
F
T
Định nghĩa 2. Hai mnh đề p, q được gi là tương đương logic vi nhau (ký hiu: p q)  
khi và chkhi các ct cho giá trchân lý ca chúng ging nhau. Hay mnh đề pq là hng đúng.  
Ví d: hai mnh đề ¬ (p q) ¬p ∧ ¬q là tương đương logic vì các ct giá trchân lý ca  
chúng được thhin qua bng sau:  
Bng 1.3. Bng giá trchân lý đối vi ¬(p q) và ¬p∧¬q  
p
T
T
F
F
q
T
F
T
F
pq  
T
¬(pq)  
¬p  
F
¬q  
F
¬p∧¬q  
F
F
F
T
F
F
F
T
T
F
T
T
T
F
F
T
T
Dùng bng giá trchân lý để chng minh tính tương đương logic gia hai mnh đề phc  
hp cho ta mt phương pháp trc quan dhiu. Tuy nhiên, vi nhng mnh đề logic phc hp có  
k mnh đề thì cn ti 2k giá trchân lý để biu din bng giá trchân lý. Trong nhiu trường hp  
chúng ta có thchng minh tính tương logic bng vic thay thế mt mnh đề phc hp bng  
nhng tương đương logic có trước.  
Bng phương pháp bng chân lý, ddàng chng minh được stương đương ca các công  
thc dưới đây:  
pq  
pq  
≡ ¬pq  
(pq)(qp)  
p  
¬(¬p)  
8
Chương 1: Nhng kiến thc cơ bn  
Bng 1.4. Bng các tương đương logic  
TƯƠNG ĐƯƠNG  
TÊN GI  
Lut đồng nht  
p T p  
p F p  
Lut nut  
p T T  
p F F  
Lut luỹ đẳng  
p p p  
p p p  
Lut phủ định kép  
Lut giao hoán  
¬(¬p) p  
p q q p  
p q q p  
Lut kết hp  
Lut phân phi  
Lut De Morgan  
(p q) r p ( q r)  
(p q) r p ( q r)  
p ( q r) (p q ) (p r)  
p ( q r) (p q) (p r)  
¬(p q ) ≡ ¬p ∨ ¬q  
¬(p q ) ≡ ¬p ∧ ¬q  
Ví d: Chng minh rng ¬( p (¬q q ) là tương đương logic vi ¬p ∧ ¬q.  
Chng minh:  
¬( p (¬q q ) ≡ ¬p ∧ ¬(¬p q )  
≡ ¬p [ ¬(¬p) ∨ ¬q  
≡ ¬p [ p ∨ ¬q ]  
theo lut De Morgan th2  
theo lut De Morgan th2  
theo lut phủ định kép  
theo lut phân phi  
(¬p p ) (¬p ∧ ¬q)  
F (¬p ∧ ¬q)  
¬p p F  
≡ ¬p ∧ ¬q  
Mnh đề được chng minh.  
1.2.3. Dng chun tc  
Các công thc (mnh đề) tương đương được xem như các biu din khác nhau ca cùng  
mt mnh đề. Để ddàng viết các chương trình máy tính thao tác trên các công thc, chúng ta cn  
9
Chương 1: Nhng kiến thc cơ bn  
chun hóa các công thc, đưa chúng vdng biu din chun được gi là dng chun hi. Mt  
công thc được gi là dng chun hi nếu nó là hi ca các mnh đề tuyn.  
Phương pháp để biến đổi mt công thc bt kvdng chun hi bng cách áp dng các  
thtc sau:  
ƒ
ƒ
Bcác phép kéo theo () bng cách thay (pq) bi (¬pq).  
Chuyn các phép phủ định (¬) vào sát các ký hiu mnh đề bng cách áp dng lut  
De Morgan và thay ¬(¬p) bi p.  
ƒ
Áp dng lut phân phi thay các công thc có dng (p(qr)) bi (pq)(pr).  
Ví d: Ta chun hóa công thc (pq)∨¬(r∨¬s):  
(pq)∨¬(r∨¬s) (¬pq) (¬rs)  
((¬pq)∨¬r) ((¬pq)s)  
(¬pq∨¬r)(¬pqs)  
Như vy công thc (pq)∨¬(r∨¬s) được đưa vdng chun hi (¬pq∨¬r)(¬pqs)  
1.3. VTVÀ LƯỢNG TỪ  
Trong toán hc hay trong các chương trình máy tính chúng ta rt hay gp nhng khng  
định chưa phi là mt mnh đề. Nhng khng định đó đều có liên quan đến các biến. Chng hn  
khng định:  
P(x) = “x > 3” không phi là mt mnh đề nhưng ti nhng giá trcthca x = x0 nào đó  
thì P(x0) li là mt mnh đề. Hoc trong nhng đon chương trình gp câu lnh:  
if ( x > 3 ) then x:= x +1;  
thì chương trình sẽ đặt giá trcthca biến x vào P(x), nếu mnh đề P(x) cho giá trị đúng x sẽ  
được tăng lên 1 bi câu lnh x:=x+1, P(x) có giá trsai giá trca x được ginguyên sau khi thc  
hin câu lnh if.  
Chúng ta có thphân tích mi khng định thành hai phn chngvà vng(hay vt),  
trong câu “x ln hơn 3” ta có thcoi x là chng, “ln hơn 3” là vng, hàm P(x) được gi là  
hàm mnh đề. Mt hàm mnh đề có thcó mt hoc nhiu biến, giá trchân lý ca hàm mnh đề  
ti nhng giá trcthca biến được xác định như nhng mnh đề thông thường.  
Ví d: Cho Q(x, y, z) là hàm mnh đề xác định câu x2 = y2 +z2 hãy xác định giá trchân lý  
ca các mnh đề Q (3, 2, 1), Q ( 5, 4, 3).  
Gii:  
Đặt giá trcthca x , y , z vào Q(x,y,z) ta có:  
Q(3,2,1) là mnh đề “32 = 22 + 12” là sai do đó Q(3,2,1) là mnh đề sai. Trong đó, Q (5, 4, 3)  
là mnh đề “52 = 42 + 32đúng, do đó Q(5,4,3) là mnh đề đúng.  
10  
Chương 1: Nhng kiến thc cơ bn  
Tng quát, gisM là mt tp hp các phn tnào đó. M thường được gi là trường hay  
min xác định ca các phn tthuc M. Khi đó, biu thc P(x) gi là vtxác định trên trường  
M nếu khi thay x bi mt phn tbt kca trường M thì P(x) strthành mt mnh đề trên  
trường M.  
Khi tt ccác biến ca hàm mnh đề đều được gán nhng giá trcth, thì mnh đề to ra  
sxác định giá trchân lý. Tuy nhiên, có mt phương pháp quan trng khác để biến mt hàm  
mnh đề thành mt mnh đề mà không cn phi kim chng mi giá trchân lý ca hàm mnh đề  
tương ng vi các giá trca biến thuc trường đang xét. Phương pháp đó gi là slượng hoá hay  
lượng t. Chúng ta xét hai lượng tquan trng là lượng tvi mi (ký hiu:), lượng ttn ti  
(ký hiu:).  
Định nghĩa 1. Lượng tvi mi ca P(x) ký hiu là x P(x) là mt mnh đề “P(x) đúng  
vi mi phn tx thuc trường đang xét”.  
Ví d: Cho hàm mnh đề P(x) = X2 + X + 41 là nguyên t. Xác định giá trchân lý ca  
mnh đề P(x) vi x thuc không gian bao gm các stnhiên [0..39].  
Gii: vì P(x) đúng vi mi giá trca x [0..39] ⇒ ∀ P(x) là đúng.  
Ví d: Cho P(x) là hàm mnh đề “x + 1 > x”. Xác định giá trchân lý ca mnh đề x  
P(x), trong không gian các sthc.  
Gii: vì P(x) đúng vi mi sthc x nên x P(x) là đúng.  
Định nghĩa 2. Lượng ttn ti ca hàm mnh đề P(x) (được ký hiu là:x P(x) ) là mt  
mnh đề “Tn ti mt phn tx trong không gian sao cho P(x) là đúng “.  
Ví d: Cho P(x) là hàm mnh đề “x > 3”. Hãy tìm giá trchân lý ca mnh đề x P(x)  
trong không gian các sthc.  
Gii: vì P(4) là “4 > 3” đúng nên x P(x) là đúng.  
Ví d: Cho Q(x) là “x + 1 > x”. Hãy tìm giá trchân lý ca mnh đề x Q(x) trong không  
gian các sthc.  
Gii: vì Q(x) sai vi mi x R nên mnh đề x Q(x) là sai.  
Bng 1.5: Giá trchân lý ca lượng t, ∃  
P(x) đúng vi mi x  
Có mt giá trca x để P(x) sai  
P(x) sai vi mi x  
x P(x)  
x P(x)  
Có mt giá trca x để P(x) đúng  
Dch nhng câu thông thường thành biu thc logic: Dch mt câu được phát biu bng  
ngôn ngtnhiên (câu hi thông thường) thành mt biu thc logic có vai trò hết sc quan trng  
trong xây dng các ngôn nglp trình, chương trình dch và xlý ngôn ngtnhiên. Quá trình  
dch mt câu tngôn ngtnhiên thành mt biu thc slàm mt đi tính tnhiên ca ngôn ngữ  
11  
Chương 1: Nhng kiến thc cơ bn  
đa scác ngôn ngữ đều không rõ ràng, nhưng mt biu thc logic li rt rõ ràng cht chtcú  
pháp thhin đến ngnghĩa ca câu. Điu này dn đến phi có mt tp hp các githiết hp lý  
da trên mt hàm xác định ngnghĩa cucâu đó. Mt khi câu đã được chuyn dch thành biu  
thc logic, chúng ta có thxác định được giá trchân lý ca biu thc logic, thao tác trên biu  
thc logic, biến đổi tương đương trên biu thc logic.  
Chúng ta sminh hovic dch mt câu thông thường thành biu thc logic thông qua  
nhng sau.  
Ví ddch câu “Bn không được lái xe máy nếu bn cao dưới 1.5 mét trphi bn trên 18  
tui” thành biu thc logic.  
Gii:  
Ta gi p là câu : Bn được lái xe máy.  
q là câu : Bn cao dưới 1.5m.  
r là câu  
: Bn trên 18 tui.  
Khi đó: Câu hi trên được dch là:  
(q ∧ ¬r) → ¬p  
Ví d: Dch câu “Tt ccác sinh viên hc tin hc đều hc môn toán hc ri rc”  
Gii: Gi P(x) là câu “x cn hc môn toán hc ri rc” và x được xác định trong không  
gian ca các sinh viên hc tin hc. Khi đó chúng ta có thphát biu: x P(x)  
Ví d: Dch câu “Có mt sinh viên lp này ít nht đã tt ccác phòng ca ít nht mt  
nhà trong ký túc xá”.  
Gii: Gi tp sinh viên trong lp là không gian xác định sinh viên x, tp các nhà trong ký  
túc xá là không gian xác định căn nhà y, tp các phòng là không gian xác định phòng z. Ta gi  
P(z,y) là “z thuc y”, Q(x,z) là “x đã z”. Khi đó ta có thphát biu:  
x y z (P(z,y) Q(x,z));  
1.4. MT SỐ ỨNG DNG TRÊN MÁY TÍNH  
Các phép toán bít: Các hthng máy tính thường dùng các bit (binary digit) để biu din  
thông tin. Mt bít có hai giá trchân lý hoc 0 hoc 1. Vì giá trchân lý ca mt biu thc logic  
cũng có hai giá trhoc đúng (T) hoc sai (F). Nếu ta coi giá trị đúng có giá tr1 và giá trsai là 0  
thì các phép toán vi các bít trong máy tính được tương ng vi các liên tlogic.  
Mt xâu bít (hoc xâu nhphân) là dãy không hoc nhiu bít. Chiu dài ca xâu là scác bít  
trong xâu đó.  
Ví d:  
Xâu nh101010011 có độ dài là 9.  
Mt snguyên đuc biu din như mt xâu nhphân có độ dài 16 bít.  
12  
Chương 1: Nhng kiến thc cơ bn  
Các phép toán vi bít được xây dng trên các xâu bít có cùng độ dài, bao gm: AND bít  
(phép và cp bít), OR (phép hoc cp bít), XOR (phép tuyn loi trcp bít). Ví d: cho hai xâu  
bít 01101 10110 và 11000 11101 hãy tìm xâu AND bít, OR bít, XOR bít.  
Phép AND  
01101 10110  
11000 11101  
01000 10100  
Phép OR  
01101 10110  
11000 11101  
11101 11111  
Phép XOR  
01101 10110  
11000 11101  
10101 01011  
Thut toán các phép tính snguyên: Các thut toán thc hin các phép tính vi các  
snguyên khi dùng khai trin nhphân là hết sc quan trng trong bxlý shc ca máy  
tính. Như chúng ta đã biết, thc cht các snguyên được biu din trong máy tính là các  
xâu bít nhphân, do vy chúng ta có thsdng biu din nhphân ca các số để thc hin  
các phép tính.  
Giskhai trin nhphân ca các snguyên a và b tương ng là:  
a = (an-1an-2 . . .a1a0)2 , b = (bn-1bn-2 . . .b1b0)2 . Khai trin ca a và b có đúng n bít (chp nhn  
nhng bít 0 ở đầu để làm đặc n bít).  
Xét bài toán cng hai snguyên viết dng nhphân. Thtc thc hin vic cng cũng  
ging như làm trên giy thông thường. Phương pháp này tiến hành bng cách cng các bít nhị  
phân tương ng có nhớ để tính tng hai snguyên. Sau đây là mô tchi tiết cho quá trình cng  
hai xâu bít nhphân.  
Để cng a vi b, trước hết ta cng hai bít phi nht, nghĩa là:  
a0 + b0 = c0*2 + s0; trong đó s0 là bít phi nht ca snguyên tng a + b, c0 là scn để nhớ  
nó có thbng 0 hoc 1. Sau đó ta cng hai bít tiếp theo và snh:  
a1 + b1 + c0 = c1*2 + s1; s1 là bít tiếp theo ca sa + b, c1 là snh. Tiếp tc quá trình này  
bng cách cng các bít tương ng trong khai trin nhphân và snh, giai đon cui cùng: an-1  
13  
Chương 1: Nhng kiến thc cơ bn  
+ bn-1 + cn-2 = cn-1 * 2 + sn-1. Bít cui cùng ca tng là cn-1. Khi đó khai trin nhphân ca tng a +  
b là (snan-1 . . .s1s0)2.  
Ví d: cng a =(1110)2, b = (1011)2  
Gii:  
Trước hết ly:  
a0 + b0 = 0 + 1 = 0 * 2 + 1 c0=0, s0 = 1  
Tiếp tc:  
a1 + b1 + c0 = 1 + 1 + 0 = 1 * 2 + 0 c1=1, s1 = 0  
a2 + b2 + c1 = 1 + 0 + 1 = 1 * 2 + 0 c2=1, s2 = 0  
a3 + b3 + c2 = 1 + 1 + 1 = 1 * 2 + 1 c3=1, s3 = 1  
Cui cùng:  
s4 = c3 = 1 a + b = (11001)2  
Thut toán cng:  
void Cong(a , b: positive integer)  
{
/*a = (an-1an-2 . . .a1a0)2 , b = (bn-1bn-2 . . .b1b0)2 */  
c=0;  
for (j=0 ; jn-1; j++) {  
d= [( aj + bj + c)/ 2];  
sj = aj + bj + c – 2d;  
c = d;  
}
sn = c;  
/*khai trin nhphân ca tng là (snan-1 . . .s1s0)2;  
}
Thut toán nhân: Để nhân hai snguyên n bít a, b ta bt đầu tvic phân tích:  
a = (an-1an-2. . .a1a0), b = (bn-1bn-2. . .b1b0)  
n1  
n1  
j
j
ab = a  
=
a( 2 )  
b
b 2  
j
j
j=0  
j=0  
Ta có thtính a.b tphương trình trên. Trước hết, ta nhn thy abj = a nếu bj=1, abj=0 nếu  
bj=0. Mi ln tính ta nhân vi 2j hay dch chuyn sang trái j bít 0 bng cách thêm j bít 0 vào bên  
14  
Chương 1: Nhng kiến thc cơ bn  
trái kết qunhn được. Cui cùng, cng n snguyên abj 2j (j=0..n-1) ta nhn được a.b. Ví dsau  
đây sminh hocho thut toán nhân:  
Ví d: Tìm tích ca a = (110)2, b= (101)2  
Gii: Ta nhn thy:  
ab020 = (110)2*1*20 = (110)2  
ab121 = (110)2*0*21 = (0000)2  
ab222 = (110)2*1*22 = (11000)2  
Sdng thut toán tính tng hai snguyên a, b có biu din n bít ta nhn được(ta có thể  
thêm s0 vào đầu mi toán hng):  
(0110)2 + (0000)2 = (0110)2 ;  
(00110)2 + (11000)2 = (11110)2 = ab.  
Thut toán nhân hai snguyên n bít có thể được mô phng như sau:  
void Nhan( a, b: Positive integer){  
/* khai trin nhphân tương ng ca a = (an-1an-2. . .a1a0),  
b = (bn-1bn-2. . .b1b0) */  
for (j=0; jn-1; j++) {  
if ( ( bj==1)  
cj = a * 2j; /* a được dch trái j bít 0 */  
else cj =0;  
}
/*c0, c1.., cn-1 là nhng tích riêng ca abj 2j(j=0..n-1 */  
p=0;  
for ( j=0 ; jn-1; j++)  
p= p + cj;  
/* p là giá trca tích ab */  
}
1.5. NHNG KIN THC CƠ BN VLÝ THUYT TP HP  
1.5.1. Khái nim & định nghĩa  
Các tp hp dùng để nhóm các đối tượng li vi nhau. Thông thường, các đối tượng trong  
tp hp có các tính cht tương tnhau. Ví d, tt csinh viên mi nhp trường to nên mt tp  
hp, tt csinh viên thuc khoa Công nghthông tin là mt tp hp, các stnhiên, các sthc..  
15  
Chương 1: Nhng kiến thc cơ bn  
. cũng to nên các tp hp. Chú ý rng, thut ngữ đối tượng được dùng ở đây không chrõ cthể  
mt đối tượng nào, smô tmt tp hp nào đó hoàn toàn mang tính trc giác vcác đối tượng.  
Định nghĩa 1. Tp các đối tượng trong mt tp hp được gi là các phn tca tp hp.  
Các tp hp thường được ký hiu bi nhng chcái in hoa đậm như A, B, X, Y..., các phn tử  
thuc tp hp hay được ký hiu bi các chcái in thường như a, b, c, u, v... Để cha là phn tử  
ca tp hp A ta viết a A, trái li nếu a không thuc A ta viết a A.  
Tp hp không cha bt kmt phn tnào được gi là tp rng (kí hiu là φ hoc { })  
Tp hp A được gi là bng tp hp B khi và chkhi chúng có cùng chung các phn tvà  
được kí hiu là A=B. Ví dtp A={ 1, 3, 5 } sbng tp B = { 3, 5, 1 }.  
Định nghĩa 2. Tp A được gi là mt tp con ca tp hp B và ký hiu là AB khi và chỉ  
khi mi phn tca A là mt phn tca B. Hay A B khi và chkhi lượng t:  
x (xA x B) cho ta giá trị đúng.  
Từ định nghĩa trên chúng ta rút ra mt shqusau:  
ƒ
ƒ
ƒ
Tp rng φ là tp con ca mi tp hp.  
Mi tp hp là tp con ca chính nó.  
Nếu AB và B A thì A=B hay mnh đề:  
x (xA xB ) ∨ ∀ x (xB x A) cho ta giá trị đúng.  
Nếu AB và AB thì ta nói A là tp con thc sca B và ký hiu là AB.  
ƒ
Định nghĩa 3. Cho S là mt tp hp. Nếu S có chính xác n phn tphân bit trong S, vi n  
là snguyên không âm thì ta nói S là mt tp hu hn và n được gi là bn sca S. Bn sca S  
được ký hiu là |S |.  
Định nghĩa 4. Cho tp hp S. Tp lutha ca S ký hiu là P(S) là tp tt ccác tp con  
ca S.  
Ví dS = { 0, 1, 2 } P(S) ={ φ, {0}, {1}, {2}, {0,1}, {0, 2}, {1, 2} {0, 1, 2}}.  
Định nghĩa 5. Dãy sp tht(a1, a2,.., an) là mt tp hp sp thtcó a1 là phn tthứ  
nht, a2 là phn tth2, .., an là phn tthn.  
Chúng ta nói hai dãy sp thtlà bng nhau khi và chkhi các phn ttương ng ca  
chúng là bng nhau. Nói cách khác (a1, a2,.., an) bng (b1, b2,.., bn) khi và chkhi ai = bi vi mi i  
=1, 2, ..n.  
Định nghĩa 6. Cho A và B là hai tp hp. Tích đề các ca A và B được ký hiu là A×B, là  
tp hp ca tt ccác cp (a,b) vi aA, b B. Hay có thbiu din bng biu thc:  
A × B = { (a, b) | aA b B }  
16  
Chương 1: Nhng kiến thc cơ bn  
Định nghĩa 7. Tích đề các ca các tp A1, A2, . ., An được ký hiu là A1×A2×..×An là tp  
hp ca dãy sp tht(a1, a2,.., an) trong đó aiAi vi i = 1, 2,..n. Nói cách khác:  
A1×A2×..×An = { (a1, a2,.., an) | aiAi vi i = 1, 2,..n }  
1.5.2. Các phép toán trên tp hp  
Các tp hp có thể được thp vi nhau theo nhiu cách khác nhau thông qua các phép  
toán trên tp hp. Các phép toán trên tp hp bao gm: Phép hp (Union), phép giao  
(Intersection), phép tr(Minus).  
Định nghĩa 1. Cho A và B là hai tp hp. Hp ca A và B được ký hiu là AB, là tp  
cha tt ccác phn thoc thuc tp hp A hoc thuc tp hp B. Nói cách khác:  
AB = { x | x A xB }  
Định nghĩa 2. Cho A và B là hai tp hp. Giao ca A và B được ký hiu là AB, là tp  
cha tt ccác phn tthuc A và thuc B. Nói cách khác:  
AB = { x | x A xB }  
Định nghĩa 3. Hai tp hp A và B được gi là ri nhau nếu giao ca chúng là tp rng  
(AB = φ ).  
Định nghĩa 4. Cho A và B là hai tp hp. Hiu ca A và B là tp hp đuc ký hiu là A-B,  
có các phn tthuc tp hp A nhưng không thuc tp hp B. Hiu ca A và B còn được gi là  
phn bù ca B đối vi A. Nói cách khác:  
A – B = { x | xA x B }  
Định nghĩa 5. Cho tp hp A. Ta gi A là phn bù ca A là mt tp hp bao gm nhng  
phn tkhông thuc A. Hay:  
A =  
{
x | x A  
}
Định nghĩa 6. Cho các tp hp A1, A2, . ., An. Hp ca các tp hp là tp hp cha tt cả  
các phn tthuc ít nht mt trong scác tp hp Ai ( i=1, 2, . ., n). Ký hiu:  
n
=
∪ꢀ∪  
Α
Α
1
Α
Α
n
ι
2
i=1  
Định nghĩa 7: Cho các tp hp A1, A2, . ., An. Giao ca các tp hp là tp hp cha các  
phn tthuc tt cn tp hp Ai ( i=1, 2, . ., n).  
n
=
A
1
..  
A A  
2 n  
A
i
i=1  
17  
Chương 1: Nhng kiến thc cơ bn  
1.5.3. Các hng đẳng thc trên tp hp  
Mi tp con ca tp hp tương ng vi mt tính cht xác định trên tp hp đã cho được gi  
là mnh đề. Vi tương ng này, các phép toán trên tp hp được chuyn sang các phép toán ca  
logic mnh đề:  
ƒ
ƒ
ƒ
Phủ định ca A, ký hiu A (hay NOT A) tương ng vi phn bù A  
Tuyn ca A và B, ký hiu A B (hay A or B) tương ng vi A B  
Hi ca A và B, ký hiu A B (hay A and B) tương ng vi A B  
Các mnh đề cùng vi các phép toán trên nó lp thành mt đại smnh đề (hay đại slogic).  
Như thế, đại stp hp và đại slogic là hai đại số đẳng cu vi nhau (nhng mnh đề phát biu  
trên đại slogic tương đương vi mnh đề phát biu trên đại stp hp). Vi nhng trường hp cụ  
th, tutheo tình hung, mt bài toán có thể được phát biu bng ngôn ngca đại slogic hay  
ngôn ngca đại stp hp. Bng 1.5 thhin mt shng đẳng thc ca đại stp hp.  
Ta gi U là tp hp vũ trhay tp hp ca tt ccác tp hp.  
Bng 1.5: Mt shng đẳng thc trên tp hp  
HNG ĐẲNG THC  
A ∪ φ = A  
TÊN GI  
Lut đồng nht  
A U = A (U là tp vũ tr)  
A U = U  
Lut nut  
A ∩ φ = A  
AA = A  
Lut luỹ đẳng  
Lut bù  
A A = A  
A = A  
A B = B A  
A B = B A  
Lut giao hoán  
A (B C) = (A B)C  
A(B C) = (AB) C  
A (B C) = (A B) (A C )  
A (B C) = (A B) (A C)  
Lut kết hp  
Lut phân phi  
A B = A B  
A B = A B  
Lut De Morgan  
18  
Chương 1: Nhng kiến thc cơ bn  
1.6. BIU DIN TP HP TRÊN MÁY TÍNH  
Có nhiu cách khác nhau để biu din tp hp trên máy tính, phương pháp phbiến là lưu  
trcác phn tca tp hp không sp tht. Vi vic lưu trbng phương pháp này, ngoài  
nhng lãng phí bnhkhông cn thiết, thì quá trình tính hp, giao, hiu các tp hp gp nhiu  
khó khăn và mt nhiu thi gian vì mi phép tính đòi hi nhiu thao tác tìm kiếm trên các phn  
t. Mt phương pháp lưu trcác phn tbng cách biu din có thtca các phn tca mt  
tp vũ trtra hiu quhơn rt nhiu trong quá trình tính toán.  
Gistp vũ trU là hu hn gm n phn t(hu hn được hiu theo nghĩa các phn tca  
U lưu trữ được trong bnhmáy tính). Gista mun biu din tp hp AU. Trước hết ta  
chn mt thttuý nào đó đối vi các phn tca tp vũ trU, gista được bcó thtự  
a1,a2, . ., an. Sau đó xây dng mt xâu bít nhphân có độ dài n, sao cho nếu bít thi có giá tr1 thì  
phn taiA, nếu ai =0 thì aiA (i=1,2..,n). Ví dsau sminh ha kthut biu din tp hp  
bng xâu bít nhphân.  
Ví d: GisU = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }. Hãy biu din tp hp A U là  
1. Tp các snguyên lA U.  
2. Tp các snguyên chn B U.  
3. Tp các snguyên nhhơn 5 C U.  
4. Tìm A B  
5. Tìm AC . . .  
Gii: Trước hết ta coi thtcác phn tử được sp xếp theo thttăng dn tc ai=i  
(i=1,2,..,10). Khi đó:  
1- Xâu bít biu din các sltrong U ( {1, 3, 5, 7, 9 } ) là xâu có độ dài n = 10 trong đó các  
bít vtrí th1, 3, 5, 7, 9 có giá trlà 1, các bít còn li có giá trlà 0. Từ đó ta có xâu bít biu  
din tp hp A là: 1 0 1 0 1 0 1 0 1 0.  
2- Xâu bít biu din các schn trong U ( {2, 4, 6, 8, 10 } ) là xâu có độ dài n = 10 trong đó  
các bít vtrí th2, 4, 6, 8, 10 có giá trlà 1, các bít còn li có giá trlà 0. Từ đó ta có xâu bít  
biu din tp hp B là: 0 1 0 1 0 1 0 1 0 1.  
3- Xâu bít biu din các snhhơn 5 trong U ( {1, 2, 3, 4 } ) là xâu có độ dài n = 10 trong  
đó các bít vtrí th1, 2, 3, 4 có giá trlà 1, các bít còn li có giá trlà 0. Từ đó ta có xâu bít biu  
din tp hp C là: 1 1 1 1 0 0 0 0 0 0.  
4- Xâu bít biu din tp hp A B là: (1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1) là xâu 1 1 1  
1 1 1 1 1 1 1. Như vy, A B = U.  
5- Tương tnhư vy vi A C Ù (1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 0) là xâu: 1 0 1 0  
0 0 0 0 0 0. Như vy A C = { 1, 3 }  
19  
Chương 1: Nhng kiến thc cơ bn  
NHNG NI DUNG CN GHI NHỚ  
Cn hiu và nm vng được nhng ni dung sau:  
9 Các phép toán hi, tuyn, tuyn loi, suy ra, kéo theo ca logic mnh đề.  
9 Các phương pháp chng minh định lý dùng bng chân lý và các tương đương  
locgic.  
9 Phương pháp biu din các câu hi thông thường bng logic vt.  
9
Định nghĩa và các phép toán trên tp hp.  
9 Phương pháp biu din tp hp trên máy tính  
BÀI TP CHƯƠNG 1  
Bài 1. Lp bng giá trchân lý cho các mnh đề phc hp sau:  
a) (p q) (¬q→¬p)  
c) (p q) (p ⊕ ¬q)  
e) (p q) (p ⊕ ¬q)  
g) ( p q) ∧ ¬r  
b) (p q) (q p)  
d) (p q) (p ⊕¬q)  
f) (¬p ↔ ¬q) (pq)  
h) (p q) ∨ ¬r  
i) (p q) (¬q r)  
j) (¬p ↔¬q) (qr)  
Bài 2. Dùng bng chân lý chng minh lut giao hoán:  
p q q p  
p q q p  
Bài 3. Dùng bng chân lý chng minh lut kết hp:  
(p q) r p ( q r)  
( p q) r p (q r)  
Bài 4. Dùng bng chân lý chng minh lut phân phi:  
p (q r) (p q) (p r)  
Bài 5. Chng minh các công thc sau đây là đồng nht đúng bng cách lp bng giá trchân lý:  
a) ( X(YZ)) ((X Y)(XZ));  
b) (XY)((XZ)(X(YZ)));  
c) (XZ) ((YZ)((XY)Z)).  
Bài 6. Chng minh các công thc sau đây là tương đương logic:  
20  
Chương 1: Nhng kiến thc cơ bn  
a) X (Y1 Y2 ...Yn (X Y1 ) (X Y2 ) ...(X Yn )  
b) X (Y1 Y2 ...Yn (X Y1 ) (X Y2 ) ...(X Yn )  
c) (X1 X 2 X n X1 X1 X n  
d) X1 X 2 X n X1 X 2 X n  
Bài 7. Cho A, B, C là các tp hp. Chng minh rng:  
(A B) C = (A C) (B C)  
Bài 8. Cho A, B, C là các tp hp. Chng minh rng:  
(B A) (C A) = (B C) A  
Bài 9. Chng minh rng nếu A, B là các tp hp thì:  
(AB) (AB) = A  
Bài 10. Cho A, B, C là các tp hp. Chng minh rng:  
a) A B C = A B C  
b) (A B C) (A B)  
c) (A B) C (A C)  
d) (A C) (C B) = Φ  
e) (B A) (C A) = (B C) A  
f ) A B = A B  
g) (A B) (A B = A  
21  
Chương 2: Bài toán đếm và bài toán tn ti  
CHƯƠNG II: BÀI TOÁN ĐẾM VÀ BÀI TOÁN TN TI  
Đếm các đối tượng có nhng tính cht nào đó là mt bài toán quan trng ca lý thuyết tổ  
hp. Gii quyết tt bài toán đếm giúp ta gii nhiu bài toán khác nhau trong đánh giá độ phc tp  
tính toán ca các thut toán và tìm xác sut ri rc các biến c. Phương pháp chung để gii bài  
toán đếm được da trên các nguyên lý đếm cơ bn (nguyên lý cng, nguyên lý nhân). Mt sbài  
toán đếm phc tp hơn được gii bng cách qui vcác bài toán con để sdng được các nguyên  
đếm cơ bn hoc tìm ra hthc truy hi tng quát.  
Ni dung chính được đề cp trong chương này bao gm:  
9
9
9
9
9
9
9
9
Các nguyên lý đếm cơ bn  
Nguyên lý bù trừ  
Hoán vvà thp  
Hthc truy hi  
Qui vcác bài toán con  
Gii thiu bài toán tn ti  
Phương pháp phn chng gii quyết bài toán tn ti.  
Nguyên lý Dirichlet gii quyết bài toán tn ti.  
Bn đọc có thtìm hiu nhiu kthut đếm cao cp hơn trong tài liu [1], [2] trong phn  
tham kho ca tài liu này.  
2.1. NHNG NGUYÊN LÝ ĐẾM CƠ BN  
2.1.1. Nguyên lý cng  
Giscó hai công vic. Vic thnht có thtiến hành bng n1 cách, vic thhai có thtiến  
hành bng n2 cách và nếu hai vic này không thtiến hành đồng thi. Khi đó scó n1 + n2 cách để  
gii gii quyết mt trong hai vic trên.  
Chúng ta có thmrng qui tc cng cho trường hp nhiu hơn hai công vic. Giscác  
vic T1, T2,.., Tm có thlàm tương ng bng n1, n2,.., nm cách và giskhông có hai vic Ti, Tj  
nào làm vic đồng thi (i,j = 1, 2,.., m ; i j ). Khi đó, có n1 + n2 +.. +nm cách thc hin mt trong  
các công vic T1, T2,.., Tm.  
Qui tc cng được phát biu dưới dng ca ngôn ngtp hp như sau:  
ƒ
Nếu A và B là hai tp ri nhau (A B = φ) thì: N(AB) = N(A) + N(B).  
22  
Tải về để xem bản đầy đủ
pdf 198 trang Thùy Anh 26/04/2022 4720
Bạn đang xem 20 trang mẫu của tài liệu "Giáo trình hướng dẫn học tập Toán rời rạc - Nguyễn Duy Phương", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_huong_dan_hoc_tap_toan_roi_rac_nguyen_duy_phuong.pdf