Professional Documents
Culture Documents
PP Sử Dụng Hàm Sinh (Đại Số Sơ Cấp) - Phạm Thế Bảo (Repaired)
PP Sử Dụng Hàm Sinh (Đại Số Sơ Cấp) - Phạm Thế Bảo (Repaired)
Hà nội, 2022-2023
1
Table of Contents
Type chapter title (level 1) 1
Type chapter title (level 2) 2
Type chapter title (level 3) 3
Type chapter title (level 1) 4
Type chapter title (level 2) 5
Type chapter title (level 3) 6
2
Mở đầu
Hàm sinh (Generating Function) trong toán học là một trong các công cụ mạnh để giải
quyết một số dạng bài toán khó. Lí thuyết hàm sinh đã được biết đến từ lâu và được
nghiên cứu khá kĩ lưỡng.
Hàm sinh còn là một trong những sáng tạo thần kì, bất ngờ, nhiều ứng dụng của toán
rời rạc. Hàm sinh chuyển những bài toán từ dãy số thành những bài toán về hàm số.
Với những điều này chúng ta có thể dễ dàng giải quyết được một số bài toán.
Trong quá trình nghiên cứu, nhóm sinh viên chúng tôi nhận thấy có nhiều dạng bài
toán nếu biết vận dụng khéo léo công cụ hàm sinh thì lời giải rất đơn giản trong khi
nếu không dùng công cụ này lời giải sẽ rất phức tạp, thậm chí không thể giải được
bằng các phương pháp thông thường như: Các bài toán tìm công thức tổng quát của
dãy số; các bài toán tổ hợp.
Để có thể nắm vững lí thuyết hàm sinh cũng như vận dụng được các công cụ hàm
sinh để ứng dụng vào giải toán, trong chuyên đề này nhóm sinh viên chúng tôi trình
bày phương pháp sử dụng hàm sinh, bao gồm các vấn đề:
3
1. Giới thiệu về hàm sinh và các phép toán trên hàm sinh
1.1 Giới thiệu về hàm sinh
Phương pháp sử dụng hàm sinh là một trong những phương pháp độc đáo và có
một lịch sử lâu dài.
Định nghĩa: Hàm sinh thường của vô hạn (a n ¿ ¿ n≥ 0 là chuỗi luỹ thừa hình thức:
G(x) = a 0+ a1 x + a2 x 2 +…+a n x n +…
Ta gọi hàm sinh là chuỗi luỹ thừa hình thức bởi vì thông thường ta sẽ chỉ coi x
là một kí hiệu thay thế vì một số. Chỉ trong một số trường hợp, ta sẽ cho x nhận
giá trị thực, vì thế ta gần như không để ý đến sự hội tụ của các chuỗi. Có một
số loại hàm sinh khác nhau, trong bài này chỉ xét đến hàm sinh thường.
Cơ sở lí thuyết của phương pháp này là vành A = R [[x]] các chuỗi luỹ thừa
hình thức trên trường thực R có dạng ∑
n
an x với phép cộng và phép nhân chuỗi
n ≥0
Do vậy
1
∞
=1−x
∑x n
n=0
Thật vậy, trong các ví dụ sau ta sẽ kí hiệu sự tương ứng giữa các dãy số và hàm
sinh bằng dấu “↔” như sau:
4
¿ a 0 , a 1 , a2 , … , an , …>↔ a 0+ a1 x + ax x2 +a n x n +…
2 n
¿ 0,0,0,0 , … .>↔ 0+0. x+0. x + …+0. x + …=0
Chú ý: Quy tắc ở đây khá đơn giản: Số hạng thứ i của dãy số (từ 0) là hệ số
của x i trong hàm sinh.
Ta nhắc lại công thức tính tổng của cấp số nhân lùi vô hạn:
2 1
1 + z + z + …=
1−z
Đẳng thức này đúng với |z| ≤1 (tuỳ theo chuẩn mà ta xét).
Từ công thức trên, ta sẽ có công thức tường minh cho hàm sinh của một số các
dãy số thường gặp:
2 1
¿ 1,1,1,1 , ….>↔ 1+1. x +1. x + …=
1−x
1
¿ 1 ,−1,1 ,−1 , … .>↔ 0+0. x+ 0. x 2+ …+0. x n+ …=
1+ x
1
¿ 1 , c , c 2 , c3 , … .>↔1+ c . x+ c2 . x2 +…=
1−ax
2 4 n 1
¿ 1,0,1,0 , … .>↔1+0. x + x + …+0. x + …=
1−x 2
Ta sẽ gặp những bài toán ở những công thức này trong ứng dụng hàm sinh ở
bài toán phần sau.
Phần đặc biệt của hàm sinh nằm ở phần ta có thể chuyển tiếp các phép toán
thực hiện trên dãy số thành các phép toán thực hiện trên hàm sinh tương ứng
với nó. Từ đó, ta có thể dễ dàng thực hiện các phép toán.
Quy tắc:
Chứng minh:
5
2
<c f 0 , c f 1 , c f 2 , c f 3 , …> ↔ c f 0 + ( c f 1 ) x+(c f 2 ) x +… = c( f 0 +f 1 x+ f x x 2+ … ¿ =
c.F(x)
Ví dụ:
1 n
<1,0,1,0, …> ↔ 2 thì <n , 0 , n , 0 , …. >
↔
1−x 1−x 2
1
<1,a,a 2 , a3 , …> ↔ 1 + ax + a 2 x 2+ … = 1−ax = f(x)
¿ a+ a2 x +a 3 x 2 +… ↔<a , a2 , a3 , …>¿
Quy tắc: Công hai hàm sinh tương ứng với việc cộng các số hạng của dãy
số theo đúng chỉ số. Nếu < f 0 , f 1 , f 2 , f 3 ,… > ↔ F(x) và < g0 , g 1 , g2 , g 3 , …> ↔
G(x) thì < f 0 +g 0 , f 1+ g 1 , f 2+ g2 , f 3 + g3 > ↔ F(x) + G(x).
Chứng minh:
↔( f 0 +g 0 ¿+ ( f 1+ g 1) x +(f 2 + g2 ) x 2+ …
= ( f 0 +f 1 x+ f x x 2+ … ¿+¿+…)
= F(x) + G(x)
1 1
Ví dụ: Ta có: <1,1,1,1,…> ↔ và <1,-1,1,-1,…> ↔
1−x 1+ x
1
Hoặc ta sử dụng quy tắc cộng cho <1,0,1,0,…> ↔ 2 và <1,0,1,0,…> ↔
1−x
1
2 thì ta cũng có:
1−x
6
1 1 2
<2,0,2,0, …> ↔ 2
+ 2
= 2
1−x 1−x 1−x
xk
<0,0,…, 0,1,1,…> ↔ x k+1 + x k+ 2+ x k +3+ …=¿ x k (1+ x+ x2 +…) ↔
1−x
Như vậy ta thêm k số 0 vào đầu dãy số tương ứng với việc hàm sinh nhân
với x k . Điều này tương đương với trường hợp tổng quát.
C/M:
= x k ( f 0 +f 1 x+ f 2 x2+…) = x k F ( x ) .
∂ F (x)
Quy tắc: Nếu < f 0 , f 1 , f 2 , f 3 ,… > ↔ F(x) thì < f 1 , 2 f 2 , 3 f 3 , …> ↔
∂x
Chứng minh:
∂ ∂ F (x )
2
< f 1 , 2 f 2 , 3 f 3 , …> ↔ f 1+ 2 f 2 x +3 f 3 x + …=
∂x
( f 0 + f 1 x +f 2 x + … )=
2
∂x
.
Quy tắc này được gọi là phép xoắn hay quy tắc xoắn.
7
Rõ hơn: Coi A(x) là hàm sinh cho số cách chọn các phần tử tập A và
B(x) là hàm sinh cho số cách chọn các phần tử từ tập B. Nếu A và B
rời nhau thì hàm sinh số cách chọn các phần từ từ tập A(x).B(x) (A∪
B).
VD2(Dãy Catalan)
1.3 Dùng hàm sinh chuỗi luỹ thừa vô hạn
Cơ sở lý thuyết:
A = R[[ x ]] các chuỗi luỹ thừa trên trường thực R có dạng ∑
n
an x là
n ≥0
k∑ an x =∑ k an x , k ∈ R
n n
n≥ 0 n ≥0
∑ an x n =∑ an x n ⟺ a n=b n
n ≥0 n ≥0
Câu 1: Tìm số hạng tổng quát của dãy (a n). a =50a −41 a , n ≥0
n +2 n +1 n
{ a =1, a =2
Sgg: Nhận thấy a n+2−5 a n+1 +4 an=0 nên ta cần cho xuất hiện
a n+2−5 a n+1 +4 an .
Lời giải: Thật vậy, ta đặt G(x) là hàm sinh cho dãy (a n) ta có:
8
n+2
(1-5x+4 x 2)G(x) = a 0+ ( a1−5 a0 ) x+ …+ ( an +2−5 a n+1 +4 an ) x +…
1−3 x
= a 0+ ( a1−5 a0 )=1−3 x ⟺ G ( x )= 2
1−5 x +4 x
Phân tích:
1−3 x A B
G(x) = 2=
1−x
+
1−4 x
1−5 x+4 x
2 1
Ta quy đồng và quy nhất hệ số được: A = 3 ; B = 3
( )
∞ ∞ ∞ n
2 1 1 1
⇒G ( x )= + ( ) = 2 ∑ x n + 1 ∑ (4 x )n=∑ 2+4 x n
3 1− x 3 1−4 x 3 n=0 3 n=0 n=0 3
2+ 4 n 2+ 4 n
Hệ số của x n trong khai triển là nên a n= ∀ n ≥0.
3 3
{
1
a0 =1, a 1= , n≥ 0
2
a n+2=an+1 −an
Sgg: Trong quá trình tính ta cần cho xuất hiện a n+2−an+1 +a n. Hơn nữa,
khi tính toán G(x) ta cần sử dụng thêm công thức Moivre.
Lời giải:
Lời giải: Trong phương trình (1) thì ta có x 1 , x 2 , x 3 ,… , x d có vai trò như
nhau nên ta chỉ cần tìm hàm sinh cho cách chọn một số x i (1≤ i ≤ d ) bất
kì. Do x i là số nguyên dương lẻ nên x i nhận các giá trị như: 1,3,5,…
f ( x )=x + x 3 + x 5+ …=∑ x 2 k+ 1
k ≥0
9
x
Ta có f ( x )=∑ x =
2 k +1
2
k ≥0 1−x
Áp dụng quy tắc xoắn ta xác định được hàm sinh cho cách chọn bộ số (
xd
x 1 , x 2 , … , x d ) là 2 d
(1−x )
Câu 4: Xác định các dãy số (un )n ≥0 biết u0 =u1=¿1 và un =a un−1 +b un−2 ¿)
trong các trường hợp sau: (a,b) = (1,2); (a,b) = (3,-4)
F(x) = u0 +u1 x+ ∑
n
un x
n ≥2
=1+x+∑
n
(a un−1 +b u n−2 ) x
n ≥2
= 1 + x + a∑
n≥ 2
u n−2 x n+ b ∑ un−2 xn
n ≥2
( ∑ u x −u )+ b x ∑ u x
n 2 n
= 1 + x + ax n≥ 0
n 0
n≥ 0
n
= 1 + x + axF ( x )−ax +b x 2 F ( x)
1−ax+ x
⟹ F(x) =
1−ax−b x 2
.
n n
(−1) −2
Đồng nhất hệ số ⟹ un= , ∀n≥ 2
3
10
TH2: (a,b) = (3,-4)
1−2 x
Ta có: F(x) =
1−3 x+ 4 x 2
=
G(x) = u0 +u1 x +u 2 x + ∑
2
Ta có: un x n
n ≥0
= u0 +u1 x+ u2 x 2 + ∑
n
(a un−1 +b u n−2 + c un−3 )x
n ≥3
= u0 +u1 x+ u2 x 2 +ax ¿ + c x
3
∑ un xn
n ≥0
= 1 + x + x + ax ( G ( x )−x−1 ) + b x 2 ( G ( x ) −1 ) +
2
c x 3G(x)
( 1−a−b ) x 2+ ( 1−a ) x +1
⟹ G(x) = 2 3
1−ax−b x −c x
n ≥0
1
1−x
⇒ G(x) = ∑ x (3)
n
n ≥0
https://cuuduongthancong.com/toan/chuyen-de-toan-logic---roi-rac/
phuong-phap ham-sinh.pdf?src=detail
https://math.libretexts.org/Bookshelves/
Combinatorics_and_Discrete_Mathemati
cs/Combinatorics_(Morris)/02%3A_Enumeration/07%3A_Generating_F
unctions/ 7.03%3A_Using_Generating_Functions_To_Count_Things
https://math.berkeley.edu/~shiyu/s15math53/generating_functions.pdf
https://www.youtube.com/watch?v=n9FFBXBccow
https://www.youtube.com/watch?v=vhnWx4kbNPU
https://thuvientoan.net/ham-sinh-va-ung-dung-vao-giai-toan-to-hop-roi-
rac
https://123docz.net/document/2842853-su-dung-ham-sinh-giai-bai-toan-
to hop.htm
https://www2.math.binghamton.edu/lib/exe/fetch.php/people/grads/
abawonse/lect ure_4.pdf
https://www.d.umn.edu/~jgreene/Combinatorics/Fall_2017/
Exam_2_Review_sol. pdf
https://cse.iitkgp.ac.in/~animeshm/generating_funct.pdf
https://www.math.cmu.edu/~lohp/docs/math/2011-228/mit-ocw-
generating func.pdf
https://math.stackexchange.com/questions/2925451/generating-function-
problem and-distributing-candy-to-kids
12