TRƯỜNG THPT CHUYÊN TỈNH THÁI NGUYÊN CHUYÊN ĐỀ TRẠI HÈ HÙNG VƯƠNG NĂM 2015 SỬ DỤNG DÃY NHỊ PHÂN TRONG MỘT SỐ BÀI TOÁN ĐẾM • Mã: TO04 I.. Phương pháp sử dụng dãy nhị phân vào bài toán
Trang 1TRƯỜNG THPT CHUYÊN TỈNH THÁI NGUYÊN
CHUYÊN ĐỀ TRẠI HÈ HÙNG VƯƠNG NĂM 2015
SỬ DỤNG DÃY NHỊ PHÂN TRONG MỘT SỐ BÀI TOÁN ĐẾM
• Mã: TO04
I MỞ ĐẦU
Trong các kì thi học sinh giỏi và kì thi Quốc gia Trung học phổ thông, học sinh gặp nhiều bài toán đếm Các em có thể vận dụng các nguyên lí đếm
cơ bản, nguyên lí đơn ánh, nguyên lí song ánh, sử dụng hệ thức truy hồi hay hàm sinh… vào giải quyết bài toán Phương pháp sử dụng dãy nhị phân vào bài toán đếm là một nội dung nhỏ trong phương pháp sử dụng nguyên lí song ánh và ít được nhắc đến trong các tài liệu tham khảo Tuy nhiên, qua thực tiễn giảng dạy chúng tôi nhận thấy học sinh rất thích thú với phương pháp này Do đó, chúng tôi cố gắng sưu tầm một số bài tập cho các em làm
và từ đó bước đầu rút ra một số kinh nghiệm bản thân về phương pháp sử dụng dãy nhị phân trong một số bài toán đếm
II DÃY NHỊ PHÂN VÀ NHỮNG VẬN DỤNG CỦA DÃY NHỊ PHÂN TRONG MỘT SỐ BÀI TOÁN ĐẾM
1 Một số kiến thức cơ bản về dãy nhị phân
- Dãy nhị phân độ dài n là một dãy bao gồm n phần tử trong đó mỗi phần tử chỉ nhận một trong hai giá trị là “ 0” hoặc “ 1”
- Số dãy nhị phân có độ dài n là 2n
- Số dãy nhị phân có độ dài n, trong mỗi dãy có đúng k thành phần bằng
“ 1” là: k
n
C , (k ∈ • , n∈ • *)
2, Vận dụng dãy nhị phân trong một số bài toán đếm
Trang 2Bài 1: Cho một lưới gồm các ô vuông Các nút được đánh số từ 0 đến
m theo chiều từ trái sang phải và từ 0 đến n theo chiều từ dưới lên trên Hỏi
có bao nhiêu đường đi khác nhau từ nút (0, 0) đến nút (m, n) nếu chỉ cho phép đi trên cạnh các ô vuông theo chiều từ trái sang phải hoặc từ dưới lên trên
Giải:
1
1
1
1
0
0
0 n
m
m,n
n
m
(m,n) n
(0,0)
Một đường đi như thế được xem gồm (m + n) đoạn (mỗi đoạn là một cạnh ô vuông) Tại mỗi đoạn chỉ được chọn một trong hai giá trị đi lên (ta
mã hoá là 1) hay sang phải (ta mã hoá là 0) Số đoạn đi lên đúng bằng n và
số đoạn sang phải đúng bằng m Bài toán dẫn đến việc tìm xem có bao nhiêu dãy nhị phân có độ dài (m + n) trong đó có đúng n thành phần bằng 1 Kết quả cần tìm là Cm n+n
Nhận xét: Trong bài toán này chúng ta quan tâm tới hướng đi tại mỗi thời
điểm chỉ có hai khả năng là đi lên hoặc sang ngang Từ đó quy ước mã hóa
để đưa về dãy nhị phân
Trang 3Bài 2 Một rạp chiếu phim có 15 máy điều hòa gắn ở các vị trí khác nhau
Để điều hòa được không khí thì tại mọi thời điểm phải có ít nhất một máy điều hòa hoạt động Hỏi có bao nhiêu cách vận hành các máy điều hòa này
để không khí trong rạp luôn được điều hòa?
Giải:
Ta gọi các điều hòa đã cho là H1, H2, …, H15 Tại mỗi thời điểm, điều hòa Hi bật ta mã hóa bởi số 1 và nếu nó tắt ta mã hóa bởi số 0 Khi đó mỗi cách vận hành 15 máy điều hòa tương ứng với một dãy nhị có độ dài 15 Cách vận hành thỏa mãn yêu cầu bài toán tương ứng với dãy nhị phân độ dài 15, trong
đó có ít nhất một thành phần bằng 1 Có duy nhất một dãy nhị phân độ dài
15 mà tất cả các phần tử đều là 0 Do đó kết quả cần tìm là 215 -1 = 32767 cách
Nhận xét: Trong nhiều bài toán thực tiễn ta gặp hai khả năng chính trong bài
toán là hai quan hệ trái ngược nhau như: “bật” và “tắt”; “đóng” và “mở”;
“thuộc” và “ không thuộc”; “ được” và ‘không được”… Khi gặp những quan
hệ như thế ta có thể nghĩ đến việc đưa bài toán về bài toán liên quan đến dãy nhị phân Sau đây là một số bài toán như thế
Bài 3: Chứng minh rằng một tập hợp X có n phần tử thì X có đúng 2n tập hợp con với n là số tự nhiên
Giải:
- Nếu n = 0 thì khẳng định trên hiển nhiên đúng
- Nếu n là số nguyên dương thì ta gọi các phần tử của X là a1, a2,…, an Tương ứng với một tập hợp con A bất kì của X, ta xây dựng một dãy nhị phân có n phần tử bằng cách nếu phần tử thứ ai thuộc A thì ta viết vào vị trí thứ i của dãy nhị phân số 1, còn nếu ai không thuộc A thì ta viết vào vị trí thứ i của dãy nhị phân số 0 Mỗi vị trí trong dãy nhị
Trang 4phân chỉ có thể nhận một trong hai giá trị Số dãy nhị phân như thế là
2n dãy Vậy bài toán được chứng minh
Bài 4: Có n chiếc kẹo giống nhau chia cho m em bé (m, n nguyên
dương) Hỏi có bao nhiêu cách chia kẹo?
Đây là một bài toán hay có tên là bài toán chia kẹo của Euler và có nhiều ứng dụng trong giải toán tổ hợp Ở những bài trước học sinh có thể dễ dàng nhận ra hai quan hệ trong bài toán, từ đó có thể mã hóa để đưa về bài toán của dãy nhị phân Vận dụng bài 1 ở trên ta có thể giải được bài 4 tuy nhiên chúng tôi trình bày một phương pháp hướng dẫn học sinh giải bài toán này bằng phương pháp sử dụng dãy nhị phân Phương pháp hướng dẫn sau đây gọi là kỹ thuật bắc giàn trong vận dụng lý thuyết về vùng phát triển gần nhất của Vygotsky
Sau đây là đoạn hội thoại có thể diễn ra giữa giáo viên và học sinh Tình huống hội thoại do giáo viên tưởng tượng ra và lên kế hoạch thay đổi nếu cần trước khi lên lớp Những câu có dấu “?” là của giáo viên, những câu có dấu “!” là của học sinh
? Giả thiết của bài toán là gì?
! Có n chiếc kẹo giống nhau chia cho m em bé
? Yêu cầu của bài toán là gì?
! Đếm xem có bao nhiêu cách chia kẹo thỏa mãn yêu cầu bài toán?
? Theo em, trong bài toán có bao nhiêu đối tượng chính?
! Có hai đối tượng chính là em bé và kẹo
? Điều này có gợi ý cho em ý tưởng gì không?
! Em sẽ đưa bài toán về bài toán liên quan đến dãy nhị phân
? Vậy em phải quy ước đối tượng nào là 0, đối tượng nào là 1?
Trang 5! Em nghĩ trong hai đối tượng chính thì một đối tượng là 0 còn đối tượng kia là 1 Ví dụ, em quy ước mỗi em bé là một số 0, mỗi chiếc kẹo là một số 1
? Làm thế nào để có mỗi cách chia kẹo tương ứng với một dãy nhị phân nào đó?
! Em phải xếp các số 0 và 1 thành một hàng
? Vậy ý tưởng tiếp theo của em là gì?
! Nếu em bé được 0 kẹo thì em chỉ viết: 0
Nếu em bé được nhận k chiếc kẹo thì em viết: 011 1{
k
Em sẽ viết liên tiếp từ em thứ nhất tới em thứ m để tạo thành dãy nhị
phân có m số 0 và n số 1
? Em có thể minh họa ý đó rõ hơn bằng một ví dụ cụ thể?
! Ví dụ một cách chia 7 kẹo giống nhau cho 3 em bé với em thứ 1 được 3 chiếc kẹo, em thứ 2 không được nhận chiếc kẹo nào còn em thứ 3 nhận 4 chiếc kẹo Em viết 0111001111
? Tốt lắm! Vậy bài toán ban đầu em đã biết cách giải?
! Mỗi cách chia kẹo tương ứng với một dãy nhị phân có độ dài
(m+n); trong đó có m thành phần 0, n thành phần 1 và luôn có một thành
phần 0 đứng đầu dãy Do đó kết quả cần tìm là: Cn m m−1 1
+ −
Bài 5 Cho X là một tập hợp m số nguyên dương Gọi p p1, , ,2 p n là các ước
nguyên tố của các số trong X Chứng minh rằng nếu m> 2n thì tồn tại hai số trong X mà tích của chúng là một số chính phương
Giải:
Mỗi số M trong X mã hóa bởi một dãy nhị phân ( , , , )x x1 2 x n trong đó x i = 0
nếu số mũ của p i trong phân tích tiêu chuẩn của M là chẵn; x i = 1 nếu số mũ
Trang 6của p i trong phõn tớch tiờu chuẩn của M là lẻ Áp dụng nguyờn lớ Dirichlet,
ta xỏc định m thỏ là m số trong X Cỏc chuồng là 2n dóy nhị phõn cú độ dài
n Khi đú cú hai số cú tương ứng cựng dóy nhị phõn Tớch hai số này là một
số chớnh phương
Bài 6 Một dóy m số nguyờn dương chứa chớnh xỏc n số hạng phõn biệt
Chứng minh rằng: Nếu 2n ≤m thỡ tồn tại những số hạng liờn tiếp trong dóy
mà tớch của chỳng là một số chớnh phương
Giải:
Lấy b b1, , ,2 b m là một dóy trong đú b i∈{a a1 , , , 2 a n},1 ≤ ≤i m.
Với mỗi j m≤ ta xột dóy con những số hạng liờn tiếp b b1, , ,2 b j Ứng với mỗi dóy con này ta cú một bộ K j∈ ( , , , )k k1 2 k n , trong đú k i = 0 nếu a i xuất hiện số chẵn lần trong dóy con trờn, trường hợp cũn lại k i = 1
- Nếu tồn tại j m≤ : K j∈ (0,0, , 0) thỡ tớch b b b1 .2 j là số chớnh phương
- Trường hợp cũn lại, ỏp dụng nguyờn lớ Dirichlet, ta lấy m thỏ là m bộ
j
K với 1 ≤ ≤j m. Cú 2nchuồng thỏ là số cỏc giỏ trị của ( , , , )k k1 2 k n với
0
i
k = hoặc k i = 1 với 1 ≤ ≤i n. Theo giả thiết, cú hai bộ K j =K l, với
j l≤ Khi đú trong dóy b j+1,b j+2, ,b l, mỗi a ixuất hiện số chẵn lần Vậy tớch b b j+1. j+2 b l là một số chớnh phương
Bài 7 [ Balkan 1997]
Lấy m và n là số tự nhiên lớn hơn 1 Gọi S tập hợp có n phần tử Lấy
A1, A2, A3,…,Am là những tập con của S Giả sử rằng, cứ 2 phần tử bất
kỳ x, y thuộc S đều có 1 tập hợp Ai (i= 1,m) thỏa mãn điều kiện: nếu
x ∈ Ai thì y ∉Ai còn nếu x ∉Ai thì y ∈ Ai Chứng minh rằng: n 2 ≤ m
Phõn tớch:
Trang 7Bài toỏn yờu cầu chứng minh một bất đẳng thức nờn cú thể sử dụng Nguyờn lớ đơn ỏnh Ta thấy tập S cú n phần tử nờn sẽ tỡm một đơn ỏnh từ S tới một tập T nào đú Tập T phải cú 2m phần tử Bài toỏn cú hai quan hệ thuộc và khụng thuộc nờn cú thể đưa về bài toỏn dóy nhị phõn Mà ta đó biết tập hợp cỏc dóy nhị phõn cú độ dài m thỡ cú 2m phần tử (do tại mỗi vị trớ
chỉ cú thể chọn là 1 hoặc 0) Tập T phải liờn quan đến m tập nờu trong đề bài Ta cú cỏch xõy dựng đơn ỏnh như trong lời giải sau:
Giải:
Mỗi phần tử x của S ta cho tương ứng với một dãy nhị phân
( ) ( 1, , ,2 m)
f x = x x x , với x i =1nếu xi∈ Ai và x i = 0nếu xi∉ Ai Chúng ta có ánh xạ:
f: S →T = { ( x x1, , ,2 xm) xi∈ { } 0;1 }
Từ giả thiết ta có, nếu x≠ ⇒y f x( )≠ f y( ) Vậy f là một đơn ánh
T
⇒
Mỗi phần tử của T là một dãy nhị phân có độ dài m nên T =2m Vậy n 2 ≤ m
Bài 8 Trong một cửa hàng kem cú ba loại kem que: kem đậu xanh,
kem cam và kem sữa dừa Một cậu bộ muốn mua 6 que kem ở đú Biết cỏc que kem cựng tờn giống hệt nhau và cú số lượng đỏp ứng đủ cho mọi sự lựa chọn của cậu bộ Hỏi cậu bộ cú bao nhiờu cỏch lựa chọn biết thứ tự chọn cỏc loại kem là khụng quan trọng?
Giải:
Trang 8Mó húa mỗi que kem bởi một số 0 rồi xếp 6 que được chọn thành một dóy thẳng theo thứ tự kem đậu xanh, kem cam và kem sữa dừa Ngăn cỏch cỏc loại kem với nhau bởi số 1 Vớ dụ : cậu bộ chọn 2 kem đậu xanh, 1 kem cam
và 3 kem sữa dừa thỡ ta viết 00101000; cậu bộ chọn 0 kem đậu xanh, 4 kem cam và 2 kem sữa dừa thỡ ta viết 10000100 ; 2 kem đậu xanh, 0 kem cam và
4 kem sữa dừa thỡ ta viết 00110000 ; cậu bộ chọn cả 6 kem cam thỡ ta viết
10000001 Vậy mỗi cỏch chọn tương ứng với một dóy nhị phõn cú độ dài 8 trong đú cú đỳng 2 thành phần bằng 1 Vậy số cỏch chọn cú thể là : C82 cỏch
Chỳ ý : Cú những bài toỏn ta khụng nhất thiết mó húa về số 0 hoặc số 1 mà
ta cú thể mó húa bởi cỏc số khỏc
Bài 9 Để xem một buổi biểu diễn xiếc, mỗi người phải mua
một vé vào giá 1 USD Mỗi khán giả chỉ được phép mua một vé Mọi người đến mua vé đứng xếp thành một hàng dọc trước cửa bán vé Mỗi người chỉ mang đúng một tờ 1 USD hoặc đúng 1 tờ 2 USD Người bán
vé quên không mang theo tiền Giả sử có n người mang tờ 1 USD và m người mang tờ 2 USD (m n≤ ) Tìm số cách xếp hàng sao cho người có
tờ 1 USD thì được nhận ngay vé, người có tờ 2 USD thì khi đến lượt của mình được nhận ngay vé và một tờ 1 USD trả lại ?
Giải :
Mã hóa người có tờ 1 USD bởi số 1, người có tờ 2 USD bởi số
2 Mỗi cách xếp hàng bất kỳ tương ứng với một véc tơ có (m+n) thành phần trong đó n thành phần bằng 1, m thành phần bằng 2 Thành phần thứ i tương ứng với người xếp hàng ở vị trí thứ i Số véc tơ như thế là m
n m
C +
Trang 9Một véc tơ gọi là tốt nếu tương ứng với cách xếp hàng thỏa mãn yêu cầu bài toán Các véc tơ còn lại gọi là các véc tơ xấu
Chúng ta đi đếm xem có bao nhiêu véc tơ xấu bằng cách xây dựng một song ánh từ tập A các véc tơ xấu đến tập B các véc tơ
có ( m n + + 1)thành phần
Mỗi véc tơ của B có hai tính chất :
i, Có m thành phần 2, (n+1) thành phần 1
ii, Thành phần 2 đứng vị trí đầu tiên
Ta có: B C = m n m+−1
Cách xây dựng song ánh như sau:
- Giả sử vr
là một véc tơ xấu, tức là từ thành phần đầu tiên đến hết thành phần thứ (i-1) thì tương ứng với việc mua vé diễn ra suôn sẻ Đến thành phần thứ i tương ứng với người thứ i mua vé nhưng người bán vé không có tiền trả lại Vị trí i lúc này ta gọi là
vị trí xấu Như vậy, từ thành phần 1 tới hết (i-1) có số lượng thành phần 1 bằng số lượng thành phần 2 Xây dựng một véc tơ
'
vr
bằng cách thực hiện hai bước:
- Bước 1: Thêm thành phần 1 vào trước thành phần đầu tiên của vr
Khi đó, vị trí xấu là ( i +1)
- Bước 2: Từ vị trí đầu tiên của véc tơ ở bước 1 tới hết vị trí (i+1), thay các giá trị 1 bởi 2 và giá trị 2 bởi 1 Các thành phần từ vị trí (i+2) trở đi giữ nguyên giá trị cũ
Sau hai bước trên ta thu được véc tơ vr'
thuộc tập B
Trang 10- Xét véc tơ bất kỳ uur'
bất kỳ thuộc B gọi j là số tự nhiên bé nhất thỏa mãn từ vị trí 1 đến hết vị trí j thỏa mãn số thành phần 1 bằng số thành phần 2 Thao tác ngược lại ở trên, từ vị trí 1 tới hết
vị trí j ta thay 2 bởi 1 và 1 bởi 2 Các vị trí còn lại giữ nguyên như
cũ Bỏ đi số 1 ở hành phần đầu tiên ta được một véc tơ xấu thuộc A
Vậy có một song ánh từ A đến B nên số véc tơ tốt bằng:
m
n m
C + - m 1
m n
C +−
Đây cũng là kết quả cần tìm của bài toán
Nhận xột: Nếu thêm giả thiết ở Bài 9 rằng có đã có q người xếp hàng
sẵn Mỗi người trong họ đều có đúng một tờ 1 USD Hỏi có bao nhiêu cách xếp hàng thỏa mãn?
Kết quả: m+ − − n++ −1
n m q m n q
Bài 10 Xột tập hợp M gồm 1985 số nguyờn dương phõn biệt, sao cho khụng
cú số nào cú ước số nguyờn tố lớn hơn 23 Chứng minh rằng M chứa một tập con gồm 4 phần tử mà tớch của 4 phần tử này là lũy thừa bậc 4 của một số nguyờn
Hướng dẫn:
Vỡ chỉ cú 9 số nguyờn tố khụng lớn hơn 23 nờn mỗi một phần tử trong
1985 phần tử k của tập hợp M cú thể phõn tớch được thành thừa số nguyờn tố trong đú cú nhiều nhất là 9 số nguyờn tố phõn biệt: 1 2 9
1k ,2k 9k
k p p = p ( )* trong đú ki ≥ 0 và ki nguyờn Với mỗi số hạng của M ta gỏn tương ứng với một vector (x1; x2,…x9) trong đú: xi = 0 nếu số mũ ki của pi trong (*)
Trang 11là chẵn và xi = 1 nếu ki là lẻ Như thế ta có được 29 vector phân biệt Theo nguyên lí Dirichlet, mọi tập hợp con của 29 + 1 phần tử của M chứa ít nhất 2
số nguyên phân biệt, chẳng hạn a1 1, với cùng vectơ lũy thừa Suy ra tích của chúng là một số chính phương: a1b1 = C2 Khi ta lấy đi một cặp như thế
từ tập hợp M thì còn lại 1985 - 2 > 29 +1 số, áp dụng lần nữa nguyên lí Dirichlet và tiếp tục lấy đi những cặp như thế cho tới khi ít nhất còn lại 29+l
số trong M Vì 1985 > 3(29 +1) = 1539 nên ta có thể lấy đi 29 + 1 cặp ai , bi
và sẽ có 1985 - 2(29 +1) = 959 > 29 +1 = 513 số còn lại trong M Bây giờ ta nhìn lại 29 + 1 cặp lấy đi và lấy căn bậc hai của Ci (với Ci là tích ai bi, tức
là C i = a b i i)
Số Ci không thể chứa các thừa số nguyên tố khác p1, p2 , ,p9, cho nên ít nhất có một cặp Ci, Cj với cùng vectơ lũy thừa, và Ci Cj = d2, d là số nguyên bất kì Suy ra, 4 2 2
i j i i j j
d =C C =a b a b v ới ai, bi, aj, bj bất kì trong
M
III KẾT LUẬN
Trong bài viết này chúng tôi đưa ra những ví dụ về việc vận dụng dãy nhị phân vào trong các bài toán đếm quen thuộc Nhiều bài toán ở trên còn có những cách giải khác, tuy nhiên chúng tôi muốn học sinh thấy được vẻ đẹp của lời giải bài toán khi sử dụng tính chất của dãy nhị phân Trong quá trình thực nghiệm chúng tôi cảm nhận được sự thích thú của học sinh qua từng bài toán bởi dãy nhị phân có cấu trúc đơn giản và
những tính chất dễ nhớ Chúng tôi mong rằng có thể cùng các bạn đồng nghiệp nghiên cứu sâu hơn nội dung này và áp dụng được phương pháp
đã nêu vào những bài toán phức tạp hơn
TÀI LIỆU THAM KHẢO