You are on page 1of 6

Phương pháp đếm bằng công thức nghịch đảo

Trương Phước Nhân, 02/07/2018


Bằng phương pháp đếm bằng hai cách ta dễ dàng chứng minh được rằng
n
 m m
 m
mn     k ! S  n, k      k ! S  n, k  .
k 0  k  k 0  k 

Đồng nhất thức này có thể được sử dụng để tính S  n, k  , nhưng không dễ dàng chút nào. Trong bài viết
này ta sẽ chỉ ra cách nghịch đảo các đồng nhất thức như thế. Bằng phương pháp này ta có thể xác định các số
Stirling theo các lũy thừa bậc n một cách dễ dàng.
Ta định nghĩa dãy đa thức là một dãy có thứ tự
p0  x  , p1  x  , p2  x  , p3  x  ,...
các đa thức pn  x  , n  0,1, 2,3,... , mà ta đơn giản ký hiệu là  pn  x  0 , thỏa mãn các điều kiện sau đây:

i) Các hệ số của pn  x  , n  0,1, 2,3,... , đều phải là số thực;


ii) p0  x  là một hằng số khác 0;
iii) Bậc của pn  x  , ký hiệu là deg  pn  x   , bằng n .
Nếu  qn  x  0 là một dãy đa thức khác, thì  q0  x  , q1  x  ,..., qn  x   lập thành một cơ sở của không gian

vector n 1  x tất cả các đa thức trên bậc nhỏ hơn n  1 . Do đó, với mỗi pn  x  , n  0,1, 2,3,... của dãy
n
đa thức  pn  x  0 , tồn tại các số an,0 , an,1 ,..., an,n sao cho pn  x    an,k qk  x  .

k 0
n
Tương tự, tồn tại các số bn,0 , bn,1 ,..., bn,n sao cho qn  x    bn,k pk  x  cho n  0,1, 2,3,... . Các số an ,k và
k 0

bn ,k được gọi là các hệ số nối.


Biểu diễn của m  1 đa thức pn  x  đầu tiên qua qk  x  có thể viết lại dưới dạng ma trận như sau:
 p0  x    a0,0 0 ... 0   q0  x  
    
 p1  x     a1,0 a1,1 ... 0   q1  x  
,
 ...   ... ... ... 0   ... 
    
 pm  x    am,0 am,1 ... am,m   qm  x  
hay đơn giản hơn
P  AQ ,
ở đây P và Q là các vector cột  pk  x  0 và  qk  x  0 , còn A   aij 
m m
.
mm

Tương tự, biểu diễn của m  1 đa thức qn  x  đầu tiên qua pk  x  có thể viết dưới dạng ma trận Q  BP ,
ở đây P và Q là các vector cột đã nói ở trên, còn B   bij  .
mm

Từ P  AQ và Q  BP suy ra P  AQ   AB  P và Q  BP   BA Q . Do sự độc lập tuyến tính của các


đa thức  pk  x  0 và  qk  x  0 suy ra AB  BA  E với E là ma trận đơn vị.
m m

Vậy A và B là các ma trận nghịch đảo của nhau.


Kết quả 1. (Công thức nghịch đảo các đồng nhất thức tổ hợp)
Giả sử A   aij  và B   bij  là các ma trận nhận được từ hai dãy đa thức  pn  x  0 và  qn  x  0 như đã
m m

nói tới ở trên. Giả sử thêm rằng dãy các số  un 0 và  vn 0 liên hệ với nhau bằng đẳng thức:
 

n
un   an ,k vk cho mọi n  0,1,2,3,... .
k 0
Khi đó,
n
vn   an ,k uk cho mọi n  0,1,2,3,... .
k 0
n
Chứng minh. Từ un   an ,k vk cho mọi n  0,1,2,3,... ta có
k 0

 u0   v0 
   
 u1   A  v1  .
 ...   ... 
   
 un   vn 
Do đó,
 v0   u0   u0 
     
 v1   A1  u1   B  u1  , vì A và B là các ma trận nghịch đảo lẫn nhau.
 ...   ...   ... 
     
 vn   un   un 
n
Suy ra, vn   an ,k uk cho mọi n  0,1,2,3,... .
k 0

Công thức nghịch đảo các đồng nhất thức tổ hợp vừa nêu ở trên có thể áp dụng vào các bài toán đếm như

sau: Giả sử S  n  là một dãy các tập các vật cần đếm, còn T  n 
 
là một dãy các tập các vật cần đếm
0 0

khác. Ta cũng giả sử rằng un  S  n , vn  T  n và các dãy số  un 0 và  vn 0 thỏa mãn điều kiện của
 

khẳng định vừa nêu. Khi đó, công thức nghịch đảo các đồng nhất thức tổ hợp khẳng định rằng nếu ta đã tìm
được công thức để tính số các vật trong các tập của một dãy, thì ta cũng tìm được công thức để tính số các
vật trong các tập của dãy kia.
Sau đây ta sẽ xem xét một số trường hợp cụ thể thường gặp của công thức nghịch đảo các đồng nhất thức
tổ hợp.
1. Công thức nghịch đảo nhị thức
Dễ thấy rằng các dãy đa thức  x n  và

0
 x 1 
n 

0
thỏa mãn các yêu cầu của công thức.
Theo công thức nhị thức ta có
n
n
x n   x  1  1      x  1 ,
n k

k 0  k 

nk  n 
n
 x  1    1   xk .
n

k 0 k 
Do đó các ma trận A và B nhận được từ hai dãy đa thức trên là
0 
   0 ... 0 
0 
  1   1 
     ... 0 
A    0   1 ,
 
 ... ... ... ... 
 n  n n
     ...   
  0  1   n
 0 0 
  1   0 ... 0 
 0 
 1 1 0 1 
  1    1   ... 0 
B  
0  
1 .
 
 ... ... ... ... 
 n n n 1  
n 0 n 
  1    1   ...  1   
 0 1   n
Các ma trận này được gọi là các ma trận của công thức nghịch đảo nhị thức. Từ công thức nghịch đảo
đồng nhất thức tổ hợp ta suy ra rằng nếu hai dãy số  un 0 và  vn 0 liên hệ với nhau bởi hệ thức
 

n
n
un     vk ,
k 0  k 

thì
n
n
vn    1
nk
  uk .
k 0 k 
Ví dụ 1. Tính số Stirling S  n, m  theo n và m .
Lời giải. Nếu Sn  m là tập tất cả các hàm từ tập  n  vào tập  m  , còn Tn  m là tập tất cả các hàm toàn
ánh từ  n  lên  m  , thì Sn  m  um  mn , Tn  m  vm  m!S  n, m  .
m
 m
Hơn nữa, ta có hệ thức sau đây giữa un và vn : mn     k ! S  n, k  .
k 0  k 

Áp dụng công thức tính nghịch đảo nhị thức vừa tìm được ở trên ta thu được
mk  m 
m
m! S  n, m     1   k n .
k 0 k 
1 m mk  m 

Do đó, S  n, m    1   k n .
m ! k 0 k 
2. Công thức nghịch đảo Stirling
Giả sử  x n  x  x  1 x  2  ...  x  n  1 . Xét các dãy đa thức  x n  và  x  
 
n 0
. Dễ thấy rằng các dãy
0
đa thức này thỏa mãn tất cả các yêu cầu trong giả thiết của bài toán. Ta đã chứng minh được rằng
n n
mn   S  n, k  m k với mọi số nguyên dương m . Điều này có nghĩa là đa thức x n   S  n, k  x k có vô
k 0 k 0
n
số nghiệm, theo định lý cơ bản của đại số ta suy ra x n   S  n, k  x k .
k 0
n
Mặt khác, giả sử  x n   s  n, k  x k là biểu diễn của  x n theo x k . Các hệ số nối s  n, k  trong đẳng
k 0
thức này được gọi là số Stirling loại một.
Gọi A và B là các ma trận nhận được từ hai dãy đa thức trên.
Khi đó
 S  0, 0  0 ... 0 
 
 S 1, 0  S 1,1 ... 0 
A ,
 ... ... ... ... 
 
 S  n, 0  S  n,1 ... S  n, n  
 s  0, 0  0 ... 0 
 
s 1, 0  s 1,1 ... 0 
B .
 ... ... ... ... 
 
 s  n, 0  s  n,1 ... s  n, n  
Các ma trận A và B ở trên được gọi là các ma trận của công thức nghịch đảo Stirling.
n
Vì BA  E , nên ta có đồng nhất thức  s l, k  S  k , j   δ
k 0
i, j , trong đó δi , j là ký hiệu Kronecker.

Theo công thức nghịch đảo các đồng nhất tổ hợp ta suy ra nếu hai dãy số  un 0 và  vn 0 liên hệ với nhau
 

bởi hệ thức
n
un   S  n, k  vk ,
k 0
thì
n
vn   s  n, k  uk .
k 0
3. Công thức sàng
Trong phần còn lại của bài viết ta sẽ sử dụng phương pháp nghịch đảo để chứng minh lại một trường hợp
riêng nhưng thường được sử dụng của nguyên lý bao hàm loại trừ dạng tổng quát.
Giả sử X là một tập hữu hạn và A1 , A2 ,..., An là các tập con của X . Ta định nghĩa hai dãy số s0 , s1 ,..., sn
và e0 , e1 ,..., en liên kết với các tập A1 , A2 ,..., An và X như sau:
s0  X ,
s1  A1  A2  ...  An ,
s2  A1  A2  A1  A3  ...  An1  An ,
...
sk   Ai1  Ai2  ...  Aik ,
1i1 i2 ...ik  n

...
sn  A1  A2  ...  An ,
còn ek là số các phần tử của X chứa trong đúng k tập con trong số các tập con A1 , A 2 ,...., An của X ,
k  0,1,..., n . Khi đó, nguyên lý bao hàm và loại trừ dạng kinh điển chính là đồng nhất thức
e0  s0  s1  s2  ...   1 sk  ...   1 sn .
k n

Trong phần này của bài viết, ta muốn tìm công thức để biểu thị ek , k  0,1,..., n qua các số s0 , s1 ,..., sn ,
các số s0 , s1 ,..., sn trong nhiều tình huống dễ dàng tính được. Để làm điều đó trước hết ta biểu thị s0 , s1 ,..., sn
qua e0 , e1 ,..., en ; sau đó ta dùng công thức nghịch đảo để biểu thị e0 , e1 ,..., en qua s0 , s1 ,..., sn .
Trước hết, ta thấy ngay rằng
s0  X  e0  e1  ...  en .
Mặt khác, ta cũng có nhận xét rằng một phần tử x chứa trong đúng m tập con là Ai1 , Ai2 ,..., Aim sẽ được
m m
tính trong sk tổng cộng là   lần vì có   số hạng trong công thức tính
k  k 
sk   Aj1  Aj2  ...  Ajk
1 j1  j2 ... jk  n

với tất cả các tập con Aji được chọn từ Ai1 , Ai2 ,..., Aim .
Do đó,
k   k  1 n
sk    ek    ek 1  ...    en .
k   k  k 
Dưới dạng ma trận, ta có thể viết
  0  1   n
     ...   
0 0 0
 s0    e0 
    1  n 

 s1    0 1 ... 1    e1  .
 ...      
  ... 
   ... ... ... ...   
 sn    en 
n
 0 0 ...   
 n
Nếu ta ký hiệu s là vector cột của các sk , k  1, 2,..., n ; e là vector cột của các ek , k  1, 2,..., n ; còn C là
ma trận trong phương trình trên, thì phương trình này có thể viết ngắn gọn thành s  Ce . Vì ma trận C là
ma trận chuyển vị của ma trận A trong công thức nghịch đảo nhị thức nên
C 1   AT    A1   BT ,
1 T

ở đây B là ma trận của công thức nghịch đảo nhị thức, còn BT là ma trận chuyển vị của B .
Suy ra,
 0 0 1 1  n  n 
  1    1   ...  1   
 0 0 0 
 0  1 n 1  n 

 0   1   ...  1   .
C 1    1 1  
 
 ... ... ... ... 
 0 n

 0 0 ...  1   
 n 
Từ phương trình s  Ce ta suy ra e  C 1s  BT s . Vì vậy ta có mệnh đề sau đây:
Kết quả 2. (Công thức sàng)
 k  1  k  2 nk  n 
ek  sk    sk 1    sk  2  ...   1   sn .
 k   k  k 
Từ công thức sàng ta tìm được dạng biểu thị thu gọn của hàm sinh thông thường g  x  của dãy số  e j  .

Kết quả 3.
g  x   s0  s1  x  1  s2  x  1  ...  sk  x  1  ...  sn  x  1 .
2 k n

Chứng minh. Giả sử g  x  là hàm sinh thông thường của dãy số  e j  .


Vì e j  0 cho j  n , nên
g  x   e0  e1 x  e2 x 2  ...  en x n .
Thay biểu thức biểu diễn ek qua si ở công thức sàng vào g  x  ta được
g  x    s0  s1  s2  ...   1 sk  ...   1 sn 
k n
 
  2 k 1  k  n 1  n  
  s1    s2  ...   1   sk  ...   1   sn  x
 1  1  1  
 3 k 2  k  n2  n  
  s2    s3  ...   1   sk  ...   1   sn  x 2
  2 2 2 
...
 nk  n  
  sk  ...   1   sn  x k
 k  
...
 sn x .
n
Suy ra,
g  x   s0  s1  x  1  s2  x  1  ...  sk  x  1  ...  sn  x  1 .
2 k n

Nhận xét: Từ công thức trên ta có thể tính số phần tử của X chứa trong một số lẻ hay một số chẵn các tập
con A1 , A2 ,..., An , cụ thể như sau:
1 1 n

e0  e2  e4  ...   g 1  g  1    s0    2  sk  ,
k

2 2 k 0 
1 1 n

e1  e3  e5  ...   g 1  g  1    s0    2  sk  .
k

2 2 k 0 
Tài liệu tham khảo:
[1]. Trương Phước Nhân, Phương pháp đếm bằng nguyên lý bao hàm và loại trừ, 02/07/2018.
[2]. Trương Phước Nhân, Phương pháp sử dụng hàm sinh, 09/06/2018.
[3]. Trương Phước Nhân, Ứng dụng chuỗi lũy thừa hình thức trong bài toán đếm, 22/06/2018.
[4]. Ngô Đắc Tân, Lý thuyết tổ hợp và đồ thị, NXB Đại học Quốc gia.

You might also like