Tải bản đầy đủ

Phuong pháp hàm sinh

Ket-noi.com kho tài liệu miễn phí

PHƯƠNG PHÁP HÀM SINH
TÁP DỤNG THUẬT TOÁN PHƯƠNG PHÁP SINH ĐỂ GIẢI QUYẾT CÁC

BÀI TOÁN LIỆT KÊ TỔ HỢP
I. Giới thiệu về phương pháp sinh
Phương pháp sinh có thể áp dụng để giải bài toán liệt kê tổ hợp đặt ra nếu
như hai điều kiện sau thoả mãn:
1. Có thể xác định được một thứ tự trên tập các cấu hình tổ hợp cần liệt kê.
Từ đó có thể xác định được cấu hình đầu tiên và cấu hình cuối cùng trong thứ tự đã
xác định
2. Xây dựng được thuật toán từ cấu hình chưa phải cấu hình cuối, sinh ra
được cấu hình kế tiếp nó.
Phương pháp sinh có thể mô tả như sau:
;
Repeat
<Đưa ra cấu hình đang có>;
;
Until ;
II. Một số bài toán cơ bản được cài đặt bằng phương pháp sinh

1. LIỆT KÊ CÁC TẬP CON K PHẦN TỬ
Ta sẽ lập chương trình liệt kê các tập con k phần tử của tập {1, 2, ..., n} theo
thứ tự từ điển
Ví dụ: với n = 5, k = 3, ta phải liệt kê đủ 10 tập con:
1.

{1, 2, 3}

2.

{1, 2, 4}

3.

{1, 2, 5}

4.

{1, 3, 4}

5.

{1, 3, 5}


Ket-noi.com kho tài liệu miễn phí

6.

{1, 4, 5}

7.

{2, 3, 4}

8.

{2, 3, 5}

9.



{2, 4, 5}

10.

{3, 4, 5}

rong bài viết này mình muốn giới thiệu với các bạn một phương pháp đếm các cấu hình ổ
hợp rất đắc lực , đó là phương pháp hàm sinh. Vì kiến thức có hạn và chủ yếu là do mình
cóp nhặt được từ một số tài liệu nên có gì sai sót mong quý bạn thông cảm hen.
Phương pháp hàm sinh là một phương pháp hiện đại, sử dụng các kiến thức về chuỗi, chuỗi
hàm (đặc biệt là công thức Taylor). Trước hết ta có định nghĩa sau
Định nghĩa 1: Cho dãy số

.

Chuỗi hình thức

gọi là hàm sinh của dãy

Ta gọi đó là chuỗi hình thức vì ta không xét đến tính hội tụ hay tính giá trị của chuỗi mà ta
chỉ xem đó như là một cách viết thuận tiện vậy. Ta đưa vào một số phép toán trên các chuỗi
để xác định các hệ số cho các lũy thừa biến .
Định nghĩa 2: Với hai chuỗi bất kì

và chuỗi
. Ta định nghĩa:

a) Phép cộng:
b) Phép nhân với một số:
c) Tích hai chuỗi:

với

.

Trong phương pháp này ta thường hay sử dụng công thức khai triển Newton mở rộng sau:

Với là một số hữu tỉ,

.


Ket-noi.com kho tài liệu miễn phí
Ta xét một số trường hợp đặc biệt.
*

Từ đây

*

*

Tư tưởng sử dụng hàm sinh để tìm CTTQ của dãy số có thể tóm tắt như sau
Để tìm CTTQ của dãy
, ta xét hàm sinh
của dãy
. Khi đó do tính chất của
dãy
nên
phải thỏa mãn một số hệ thức nhất định. Giải các hệ thức đó ta tìm được
trong đó
là một hàm số chứa các biểu thức số học (cộng, trừ nhân, chia,
lũy thừa,...), ta tìm cách khai triển
thành chuỗi và so sánh hệ số của
ta tìm được
.

Ví dụ 3.1: Cho dãy . Tìm CTTQ của dãy
Giải: Xét
Khi đó:

là hàm sinh của dãy

.
.


Ket-noi.com kho tài liệu miễn phí


.

Ta có:



Vậy

.

Ví dụ 3.2: Tìm CTTQ của dãy số



.

Giải:
Xét

là hàm sinh của dãy

.

Khi đó:
Ta có:

Vậy

.

Ví dụ 3.3: Tìm CTTQ của dãy số:
.

Giải: Ta có
Xét

là hàm sinh của dãy

.


Ket-noi.com kho tài liệu miễn phí
Khi đó:
Ta có:

. Giải phương trình này đối với

, ta được:

.
Ta có:

hệ số của

trong khai triển thành chuỗi lũy thừa của

không thể bằng

trong

là các số nguyên dương. Do đó:

Vậy

.
Chú ý :

ở bài toán trên ta thường gọi là số catalan .

Đang tiếp tục...

bằng:

vì các hệ số của


Ket-noi.com kho tài liệu miễn phí
I. Cơ sở lí thuyết hàm sinh
1.Định nghĩa: Hàm sinh của dãy số vô hạn a0,a1,a2,...,an,... là là một chuỗi hình
thức được xác định bởi G(x)=a0+a1x+a2x2+...+anxn+...:
2.Một số đẳng thức thường dùng trong hàm sinh:
a, 11−x=1+x+x2+x3+...
b, 1(1−x)2=1+2x+3x2+4x3+...
c, 1(1−x)n=1+nx+n(n+1)2!x2+n(n+1)(n+2)3!
x3+...=∑∞i=0Cii+n−1xi với n∈N
d, 11+x=1−x+x2−x3+...
e, 1(1−ax)2=1+2ax+3a2x2+4a3x3+...
f, 11−xr=1+xr+x2r+x3r+...
g, 11+xr=1−xr+x2r−x3r+...
II.Ứng dụng hàm sinh vào các bài toán xác định công thức tổng quát của dãy số điển
hình.
Thông thường các bạn biết đến phương pháp chứng minh quy nạp hoặc phương pháp giải
phương trình sai phân để tìm công thức tổng quát của dãy số . Bài viết này nhằm cung cấp
cho các bạn thêm một phương pháp nữa cũng khá hay để tìm công thức tổng quát của dãy
số dựa trên cơ sở hàm sinh.Hi vọng rằng qua 8 ví dụ minh họa sau bạn đọc sẽ nắm chắc và
vận dụng phương pháp sử dụng hàm sinh tìm công thức tổng quát của dãy số.
Ví dụ 1:
Tìm công thức tổng quát của dãy số Fibonacci(Fn )với :

{F1=F2=1Fn=Fn−1+Fn−2n≥3

Lời Giải
Đặt G(x) là hàm sinh cho dãy (Fn), và giả sử F0=0 chúng ta có:

G(x)=F0+F1x+F2x2+F3x3+...
−xG(x)=−F0x−F1x2−F2x3−...
−x2G(x)=−F0x2−F1x3−F2x4−...

Từ 3 đẳng thức trên, ta có :

(1−x−x2)G(x)=F0+(F1−F0)x+(F2−F1−F0)x2+...=x
⇔G(x)=x1−x−x2
Phân tích G(x)=x1−x−x2=A1−αx+B1−βx
Với α=1+5√2;β=1−5√2 là hai nghiệm của phương trình 1−x−x2=0\\


Ket-noi.com kho tài liệu miễn phí
Quy đồng và đồng nhất hệ số, chúng ta được A=15√;B=−15√.
Vậy G(x)=x1−x−x2=15√(11−αx−11−βx)

⇔5√G(x)=(11−αx−11−βx)=∑k=1∞(αx)n−∑k=1∞(βx)n=∑k=1∞
(αn−βn)xn
Vậy G(x)=∑∞k=1αn−βn5√xn
Hệ số của trong khai triển là

Fn=αn−βn5√=15√⎡⎣(1+5√2)n−(1−5√2)n⎤⎦
Vậy dãy số cần tìm có công thức tổng quát dạng
Fn=15√[(1+5√2)n−(1−5√2)n],n≥0
Nhận xét: Vậy với cách sử dụng hàm sinh chúng ta cũng đã tìm ra được công thức tổng
quát của dãy số Fibonacci nổi tiếng.
Bây giờ chúng ta cùng tìm hiểu thêm một số ví dụ tương tự như dãy trên để thấy rõ tính
hiệu quả của phương pháp hàm sinh. Chũng ta cùng đi đến ví dụ sau:
Ví dụ 2
Tìm công thức tổng quát của dãy số (an )với :

{a0=1;a1=2an+2=5an+1−4ann≥0(∗)

Lời Giải
Đặt G(x) là hàm sinh cho dãy (an ), chúng ta có:

G(x)=a0+a1x+a2x2+...
−5xG(x)=−5a0x−5a1x2−5a2x3+...
4x2G(x)=4a0x2+4a1x3+...
Cộng ba đẳng thức trên và kết hợp (*) ta có:

G(x)−5xG(x)+4x2G(x)=a0+(a1−5a0)x+
(a2−5a1+4a0)x2+...=1−3x
⇔(1−5x+4x2)G(x)=1−3x
Do đó G(x)=1−3x1−5x+4x2=23(11−x)+13(11−4x)

=23(1+x+x2+...)+13[1+(4x)+(4x)2+...]
Do đó hệ số của xn trong khai triển của G(x) là 23+134n nên
an=23+134n,n≥0.
Vậy dãy số cần tìm có công thức tổng quát dạng an=23+134n,n≥0.
Nhận xét:Như vậy hàm sinh đã giải quyết tốt bài toán xác định công thức tổng quát của
dãy số cho bởi công thức truy hồi:

{a0=a;a1=ban+2=p.an+1+q.ann≥0
Để ý với bài toán ở ví dụ1 và ví dụ 2, chúng ta thấy hàm G(x) có mẫu số là tam thức bậc
hai, chẳng hạn ở ví dụ 2 chúng ta có mẫu số của hàm sinh là f(x)=1−5x+4x2 có 2
nghiệm phân biệt là x=1;x=14. Vậy trong trường hợp mẫu số của G(x) là phương


Ket-noi.com kho tài liệu miễn phí
trình bậc hai có nghiệm kép thì chúng ta làm như thế nào? Ví dụ sau đây sẽ giúp chúng ta
xử lí tình huống đó:
Ví dụ 3
Tìm công thức tổng quát của dãy số (an )với :

{a0=a1=1an+2=4an+1−4ann≥0

Lời Giải
Đặt G(x)là hàm sinh cho dãy (an ), chúng ta có:

G(x)=a0+a1x+a2x2+...
−4xG(x)=−4a0x−4a1x2−4a2x3−...
4x2G(x)=4a0x2+4a1x3+...
Cộng ba đẳng thức trên ta có:

G(x)−4xG(x)+4x2G(x)=a0+
(a1−4a0)x=1−3x⇔(1−4x+4x2)G(x)=1−3x
Do đó

G(x)=1−3x1−4x+4x2=1−3x(1−2x)2=11−2x−x(1−2x)2
=∑n=1∞(2x)n−x∑n=1∞(2x)n−1=∑n=1∞(2n−n2n−1)xn
Hệ sô của xntrong khai triển của G(x)là 2n−n2n−1 nên an=2n−n2n−1,n≥0.
Vậy dãy số cần tìm có công thức tổng quát dạng an=2n−n2n−1,n≥0.
Nhận xét: Trong ví dụ 2 và ví dụ 3 chúng ta thấy mẫu số của hàm sinh G(x) đều có
nghiệm thực để chúng ta phân tích thành các nhân tử có dạng .
Câu hỏi đặt ra là “Nếu mẫu số của hàm sinh G(x) vô nghiệm thì chúng ta sẽ không có phân
tích thành các nhân tử có dạng . Khi đó chúng ta phải giải quyết bài toán này như thế nào”.
Đặt ra câu hỏi này, tôi đã dành thời gian suy nghĩ và tìm hiểu vì trong trường hợp phương
trình đặc trưng của dãy số vô nghiệm thì nhìn chung chúng ta chỉ biết đến phương pháp
giải phương trình sai phân là giải quyết được bài toán này thông qua số phức nhưng với
hàm sinh thì sao?. Dựa vào ý tưởng số phức ở phương pháp sai phân tìm công thức tổng
quát của dãy số thật thú vị là cũng vẫn với ý tưởng số phức, chúng ta áp dụng vào hàm sinh
và thấy rằng hàm sinh cũng giải quyết tốt bài toán xác định công thức tổng quát của dãy số
trong trường hợp phương trình đặc trưng của dãy vô nghiệm.



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×