Tải bản đầy đủ (.doc) (14 trang)

cơ sở lý luân của một số thuật toán có trong môn toán đang dạy ở trường phổ thông hiện nay

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (250.25 KB, 14 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM
THÀNH PHỐ HỒ CHÍ MINH







































MÔN: PHƯƠNG PHÁP TÍNH
CHỦ ĐỀ 20: CƠ SỞ LÝ LUÂN CỦA MỘT SỐ THUẬT TOÁN CÓ TRONG
MÔN TOÁN ĐANG DẠY Ở TRƯỜNG PHỔ THÔNG HIỆN NAY (CÁC
CẤP 1,2,3)
GVHD: TS TRỊNH CÔNG DIỆU
HVTH: 1.Nguyễn Việt hải
2.Trần Ngọc Hải
3. Phạm Phi Hùng
4.Huỳnh Tấn Nghĩa
Lớp Toán -Văn bằng 2- khóa 2
NỘI DUNG
THUẬT TOÁN KHAI TRIỂN NHỊ THỨC NEWTON
VÀ TAM THỨC NEWTON
I. ĐẶT VẤN ĐỀ Trang 2
II. CƠ SỞ LÍ LUẬN 2
2.1. Nhị thức Newton (Niu-tơn) 2
2.2. Chứng minh công thức tổ hợp 3
2.3. Công lập tam giác Pascal 4
2.4.Công thức Newton (Niu-tơn) 4
III. THUẬT TOÁN KHAI TRIỂN NHỊ THỨC NEWTON
(

)
n
a b+
NHƯ SAU 6
3.1. Thuật toán 6
3.2. Ví dụ áp dụng bài toán bất đẳng thức từ nhị thức Newton 7
IV. MỞ RỘNG THUẬT TOÁN KHAI TRIỂN NHỊ THỨC NEWTON, KHAI
TRIỂN TAM THỨC NEWTON 8
4.1. Thuật toán khai triển tam thức Newton
( )
n
a b c+ +
như sau 9
4.2. Mã Giả 10
4.3. Chương trình khai triển tam thức Newton 11
2
THUẬT TOÁN KHAI TRIỂN NHỊ THỨC NEWTON
VÀ TAM THỨC NEWTON
I.ĐẶT VẤN ĐỀ
Các hằng đẳng thức
Khi học chương trình Đại số lớp 8 các bạn gặp một số các hằng đẳng thức sau đây:
( )
( )
( )
( )
( )
( )
0
1
2

2 2
3
3 2 2 3
4
4 3 2 2 3 4
2
2 2 2
1
2
3 3
4 6 4
2 2 2

a b
a b a b
a b a ab b
a b a a b ab b
a b a a b a b ab b
a b c a b c ab ac bc
+ =
+ = +
+ = + +
+ = + + +
+ = + + + +
+ + = + + + + +
Các hằng đẳng thức này thường được áp dụng để giải các bài toán biến đổi
đồng nhất và cũng được áp dụng để giải các bài toán bất đẳng thức.
Trong bài viết này, chúng tôi muốn nêu vài nét về nhị thức Newton với các bài toán
bất đẳng thức.
II. CƠ SỞ LÍ LUẬN

2.1 Nhị thức Newton( Niu-tơn)
Các hằng đẳng thức trên chỉ là trường hợp riêng của hằng đẳng thức tổng quát sau
đây:
( )
0 1 1 1 1
0

n
n
n n n n n n k n k k
n n n n n
k
a b C a C a b C ab C b C a b
− − − −
=
+ = + + + + =

(1)
( ) ( ) ( ) ( )
0 0
1
k
n n
n
n k
k n k k n k k
n n
k k
a b a b C a b C a b
− −

= =
− = + − = − = − 
 
∑ ∑
Trong đó n là số nguyên dương.
Hằng đẳng thức này được gọi là công thức nhị thức Newton, trong đó
( , )
k
n
C k N k nÎ £
là các hệ số của nhị thức.
k
n
C
bằng số tổ hợp chập k của n phần tử,
tức là
( )
!
! !
k
n
n
C
k n k
=
-

(k! 1.2.3 k)=
(qui ước
0! 1=

)
Như vậy nếu có đẳng thức
(a b c)
n
+ +
ta khai triển như thế nào? Khai triển này
là mở rộng của nhị thức Newton hay còn gọi là tam thức Newton.
3
2.2 Chứng minh công thức tổ hợp.
Bây giờ chúng ta chứng minh bằng quy nạp biến số n công thức sau đây:
(
)
!
! !
k
n
n
n
C
k
k n k
æö
ç ÷
= =
ç ÷
-
è ø
Với n=0 thì
0
0

0!
1
0!0!
C = =
đúng
Giả sử công thức đúng với các trường hợp
0 , 1n N N£ £ ³
. Ta cần chứng
minh n=N+1 đúng.
Thực vậy, với trường hợp k=0 hoặc k=N+1 chúng ta có:
(
)
(
)
0 1
1 1
1
1 !
1
0 1
0! 1 !
1
N
N N
N N
N
C C
N
N
+

+ +
æ ö æ ö
+
+
ç ÷ ç ÷
= = = = =
ç ÷ ç ÷
+
+
è ø è ø
+

Với trường hợp
1 k N£ £
chúng ta có
1
1
k k k
N N N
C C C
-
+
= +
Theo giả thiết quy nạp thì công thức đúng với trường hợp n=N, cho nên
(
)
(
)
(
)

1
1
!
1 ! 1 !
!
k! !
k
N
k
N
N
C
k N k
N
N
C
k
N
k
k
N
-
æ ö
ç ÷
= =
ç ÷
- - -
è ø
æ ö
ç ÷

= =
ç ÷
-
è ø
-
Từ đó suy ra:
(
)
(
)
(
)
1
1
! !
1 ! 1 ! k! !
k k k
N N N
N N
C C C
k N k N k
-
+
= + = +
- - + -

(
)
(
)

(
)
(
)
(
)
(
)
(
)
! 1
!k
k! 1 ! k! 1 !
! 1 1 !
k! 1 ! k! 1 !
1
N N k
N
N k N k
N N N
N
k
k
N
N k
- +
= +
- + - +
æ ö
+ +

ç ÷
= = =
ç
- +
è
+
÷
- +
ø
Như vậy chúng ta đã chứng minh đúng với n=N+1. Tóm lại, theo nguyên lý quy
nạp thì ta chứng minh được công thức cho các hệ số trong tam giác Pascal là
(
)
!
! !
k
n
n
n
C
k
k n k
æö
ç ÷
= =
ç ÷
-
è ø

4

2.3 Cách lập tam giác Pascal:
Cột(k)
Dòng(n)
0 1 2 3 4 … k … k=n
0
0
0
C
1
0
1
C
1
1
C
2
0
2
C
1
2
C
2
2
C
3
0
3
C
1

3
C
2
3
C
3
3
C
4
0
4
C
1
4
C
2
4
C
3
4
C
4
4
C
… … … … … …
n
0
n
C
1

n
C
2
n
C
3
n
C
4
n
C

k
n
C

n
n
C
2.4 Công thức Newton:
(
)
1 2 2 2 2 1

1 2 2 1
n
n n n n n n
n
n n n n
x y x x y x y y xy y

n
x
- - - -
æö æö æ ö æ ö
ç ÷ ç ÷ ç ÷ ç ÷
+ = + + + + + +
ç ÷ ç ÷ ç ÷ ç ÷
è ø è ø è ø
- -
è ø
Chúng ta dùng quy nạp để chứng minh định lý khai triển nhị thức Newton
(
)
1 2 2 2 2 1

1 2 2 1
n
n n n n n n
n
n n n n
x y x x y x y y xy y
n
x
- - - -
æö æö æ ö æ ö
ç ÷ ç ÷ ç ÷ ç ÷
+ = + + + + + +
ç ÷ ç ÷ ç ÷ ç ÷
è ø è ø è ø
- -

è ø
Công thức hiển nhiên đúng cho trường hợp n=0 và n=1.Giả sử công thức
đúng cho các trường hợp
0 , 1n N N£ £ ³
. Chúng ta sẽ chứng minh công thức đúng
cho trường hợp n=N+1, thật vậy ta có:
(
)
(
)
(
)
(
)
(
)
1
1 1 2 2 2 1

N N
N N N N N N
N N N
x y x y x y x y x C x y C x y C xy y
+
- - -
+ = + + = + + + + + +
Để ý rằng theo cách xây dựng tam giác Pascal thì
1 1
1
2 1 2

1
1 2 1
1
1
1
1

1
N N
N N N
N N N
N N N
N N
N N
C C
C C C
C C C
C C
+
+
- - -
+
-
+
+ =
+ =
+ =
+ =
Do đó
(

)
1
1 1 2 1 2 1 2 1 1
1 1 1 1

N
N N N N N N N N
N N N N
x y x C x y C x y C x y C xy y
+
+ - - - +
+ + + +
+ = + + + + + +
Vậy chúng ta đã chúng ta đã chứng minh đúng trường hợp n=N+1. Theo
nguyên lý quy nạp đã chứng minh xong định lý khai triển nhị thức Newton.
(
)
1 1 2 2 2 1 1 1

n
n n n n n n
n n n
x y x C x y C x y C x y y
- - - -
+ = + + + + +
5

1 2 2 2 2 1

1 2 2 1

n n n n n n
n n n n
x x y x y x y x
n n
y y
- - - -
æö æö æ ö æ ö
ç ÷ ç ÷ ç ÷ ç ÷
= + + + + + +
ç ÷ ç ÷ ç ÷ ç ÷
è ø è ø è ø è
-
ø
-
Một cách khác, ta có thể dựa vào tam giác Pascal:
Thay
y y=-
chúng ta có hằng đẳng thức:
(
)
(
)
(
)
(
)
2 1
1 2 2 2 2 1
1 1 1
2 11 2

n n n n
n n n n n n
n
n n n n
x y x x y x y y y
n
x x y
- -
- - - -
æö æö æ ö æ ö
ç ÷ ç ÷ ç ÷ ç ÷
- = - + - + + - + - + -
ç ÷ ç ÷ ç ÷ ç ÷
è ø è ø è ø
-
è ø
-
Ta cũng có thể dựa vào tam giác Pascal:
Từ nhị thức Newton ta có thể rút ra một số công thức như sau:

( )
1 0
0
2 1 1
n
n
n k n n
n n n n
k
C C C C


=
= + = = + + +


( ) ( ) ( )
0 1
0
0 1 1 1 1
n
n k n
k n
n n n n
k
C C C C
=
= − = − = − + + −


( )
0 1 1 0
0
1
n
n
k n k n n n
n n n n
k
x C x C x C x C x
− −

=
+ = = + + +


( ) ( ) ( )
0 0 1 1
0
1 1 1
n
n n n
k k n n
n n n n
k
x C x C x C x C x
=
− = − = − + + −


( ) ( ) ( )
0 1 1 0
0
1 1 1
n
n k n
k n k n n n
n n n n
k
x C x C x C x C x
− −
=

− = − = − + + −

6
III. Thuật toán khai triển nhị thức Newton
(
)
n
a b+
như sau:
3.1 Thuật toán
Input : n bậc của nhị thức
Output:
0 1 1
0
( )
n
n n n k n k k n n k n k k
n n n n n
k
a b C a C a b C a b C b C a b
- - -
=
+ = + + + + + =
å
Bước 1: Viết tam giác Pascal đến dòng thứ n, của nhị thức Newton
( )
n
a b+

Cột(k)

Dòng(n)
0 1 2 3 4 … k … k=n
0
0
0
C
1
0
1
C
1
1
C
2
0
2
C
1
2
C
2
2
C
3
0
3
C
1
3
C

2
3
C
3
3
C
4
0
4
C
1
4
C
2
4
C
3
4
C
4
4
C
… … … … … …
n
0
n
C
1
n
C

2
n
C
3
n
C
4
n
C

k
n
C

n
n
C
Bước 2: Tại dòng thứ n, ta nhân vào các cột
b
n kk
a
-

Bước 3: Tại dòng thứ n, chúng ta cộng các cột ở Bước 2.
Mã giả của thuật toán:
Bước 1: Nhập vào
n
(n là bậc của nhị thức).
Bước 2:
: 0k

=
;
: ""S
=
; (
S
là xâu chứa hằng đẳng thức
( )
n
a b+
)
Bước 3: Nếu
k n>
qua Bước 5
Lập tam giác Pascal,
ta có:
k
n
C

b
n kk
a
-
Bước 4: Ghép các chuỗi ở bước 3
:
k n k k
n
s s C a b


= +
;
: 1k k= +
quay lên Bước 3
Bước 5: Dừng và thông báo kết quả
7
3.2 Ví dụ áp dụng bài toán bất đẳng thức từ nhị thức Newton :
Chỉ cần lấy bất kì một hằng đẳng thức nào đó, rồi bớt ( hoặc thêm ) một số
hạng dương nào đó ở một vế thì sẽ được một bài toán về bất đẳng thức. Nhưng để
được một bài toán về bất đẳng thức đúng và hay còn phải đòi hỏi vào khả năng say
mê tìm tòi của bạn. Sau đây là một số thí dụ về các bài toán bất đẳng thức quen
thuộc được rút ra từ nhị thức Newton.
Ví dụ 1:
Từ công thức (1) cho
1a =
được
2 1
( 1)
(1 ) 1
2
n n n
n n
a nb b nb b
-
-
+ = + + + + +
(2)
Nếu b là một số không âm thì
( 1)n +
số hạng ở vế phải của (2) đều là những số

không âm do đó có thể bỏ đi bất kì một số các số hạng nào đó ở vế phải ta được vế
trái không nhỏ hơn vế phải, chẳng hạn:
2
1
(1 ) 1
( 1)
(1 ) 1
2
(1 ) 1 ,
n
n
n n n
b nb
n n
b nb b
b nb b
-
+ ³ +
-
+ ³ + +
+ ³ + +

Từ (2), nếu
1
,( 1)b
n
n= >
thì
0 1 2
2

1 1 1 1
(1 )
n n
n n n n
n
C C C C
n n n n
æ ö æ ö æ ö
+ = + + + +
ç ÷ ç ÷ ç ÷
ç ÷ ç ÷ ç ÷
è ø è ø è ø
Để ý rằng
(
)
(
)
1 ! 1 ! 1
.
! !n ! !n !
k
n
k k k
n n
C
n k n k k n k k
= =
- -
<


Nên:
1 1 1 1
1 1
1! 2! !
n
n n
æ ö
ç + ÷ + + +< +
ç ÷
è ø

Ví dụ 2:
Viết nhị thức Newton theo hai cách sau:
0 1 1 1 1
( )
n n n n n n n
n n n n
a b C a C a b C ab C b
- - -
+ = + + + +

1 1 1 1 0
( )
n n n n n n n
n n n n
b a C b C b a C ba C a
- - -
+ = + + + +
Cộng theo từng vế của hai đẳng thức trên ta có:
(

)
(
)
(
)
(
)
0 1 1 1 1 1 1
2( )
n n n n n n n n n n n
n n n n
a b C a b C a b b a C ab ba C a b
- - - - -
+ = + + + + + + + +
Dễ thấy khi
a 0, b 0> >

,i n£
thì:
( )( ) 0
n i n i i i
a b a b
- -
- - ³

Nên
n n n i i i n i
a b a b a b
- -
+ ³ +


Do đó với
0, b 0a ³ ³
thì:
(
)
(
)
(
)
(
)
0 1 1
2( )
n n n n n n n n n n n
n n n n
a b C a b C a b C a b C a b
-
+ £ + + + + + + + +
8
(
)
2( ) 2
n n n n
a b a b + Ê +
hay
2 2
n
n n
a b a b

ổ ử
+ +
Ê
ỗ ữ
ỗ ữ
ố ứ

Vớ d 3:
Vi
1 1,x n- Ê Ê
l s nguyờn dng, chng minh rng:
( ) ( )
2 1 1
n n
n
x x - + +

Chng minh:
Ta thy
( ) ( ) ( )
( )
2 1 1 1 1
n
n
n
x x x x= - + + = - + +
Khai trin nh thc Newton v phi ta cú:
( ) ( ) ( ) ( )
1
0 1

2 1 1 1 1
n n n
n n
n n n
C x C x x C x
-
= - + - + + + +
Vỡ
1x Ê
nờn
(1 ),(1 )x x- +
u khụng õm do ú:
( ) ( )
0
2 1 1 (1 ) (1 )
n n
n n n n
n n
C x C x x x - + + = - + +
IV. THUT TON KHAI TRIN TRONG TAM THC NEWTON
T trc n nay, ta ó quen bit vi tam giỏc Pascal l bng cỏc h s cho
khai trin nh thc Newton, cựng vi cỏc kớ hiu
k
n
C
. Bõy gi, ta s m rng cỏc
thut toỏn ú cho trng hp khai trin biu thc
( )
,
n

a b c+ +
gi l tam thc
Newton, trong ú a, b v c l nhng bin s thc, n l s nguyờn dng.
d hiu, ta xột trng hp khai trin
( )
,
n
a b c+ +
da vo tam giỏc Pascal cho
nh thc Newton nh sau:
( )
( )
( )
2
2
2 2 0 1 1 0
( ) 1. .( ) 2 .( ) 1a b c a b c a b c a b c a b c+ + = + + = + + + + +


2 1 0 2 2
1. (1) 2 .(1. 1. ) 1. .(1. 2 1 ).a a b c a b bc c= + + + + +
Hóy chỳ ý ti cỏc h s bờn ngoi v bờn trong du ngoc! Cỏc bn thy cú
gỡ c bit khụng?
Ta xột thờm trng hp khai trin
( )
3
a b c+ +
ng vi s m
3n =
( ) ( )

3 2
3 3 0 2 1 1 0 3
( ( )) 1. .( ) 3. .( ) 3. 1. .( )a b c a b c a b c a b c a b c a b c+ + = + + = + + + + + + +

3 2 2 2 2 3 2 2 3
3 3 3 6 3 3 3a a b a c ab abc ac b b c bc c= + + + + + + + + +

Ta cú th rỳt ra thut toỏn tỡm khai trin ca (a+b+c)
3
nh sau:
Bc 1: Vit bng cỏc h s v bin bờn trong ngoc
+ Cỏc h s ca dũng th i (i = 0, 1, 2, 3) ca bng l dũng th i ca tam giỏc
s Pascal.
9
+ Các biến của dòng thứ i (i = 0, 1, 2, 3) của bảng tương ứng với các hệ số
trên là dãy các biến của khai triển
( )
i
a b+
.
+ Đặt dấu cộng giữa các đơn thức trên.
Bước 2: Viết các nhân tử bên ngoài ngoặc:
+ Các hệ số ở dòng thứ i (i =0, 1, 2, 3) là dãy hệ số của dòng thứ n = 3 của
tam giác Pascal nghĩa là dòng cuối cùng của bảng số ở bước 1.
+ Các biến ở dòng thứ i (i = 0, 1, 2, 3) là dãy biến
3

i n i
a a
- -

=

+ Đặt dấu cộng bên trái các dòng.
Bước 3: Tìm khai triển
( )
3
a b c+ +
:
+ Nhân biểu thức trong ngoặc (ở bước 1) với các nhân tử ngoài ngoặc (ở
bước 2)
+ Cộng các biểu thức ở các dòng lại được kết quả.
Một cách tổng quát với số tự nhiên n tùy ý:
(
)
(
)
(
)
0 0 0
.( ) .
p
n n
p n p p p n p q p q q
n n p
p
n
n
p q
a b c a b c C a b c C a C b c
- - -

= = =
+ + =
æ ö
ç ÷
= + = =
ç ÷
è
+ +
ø
å å å


0
p q n p p q q
n p
q p n
C C a b c
- -
£ £ £
=
å

Như vậy ta có
4.1. Thuật toán khai triển tam thức Newton
( )
n
a b c+ +
như sau:
Input : n bậc của tam thức
Output:

0 0
( ) .
p
n
n p n p q p q q
n p
p q
a b c C a C b c
- -
= =
æ ö
ç ÷
+ + = =
ç ÷
è ø
å å
0
p q n p p q q
n p
q p n
C C a b c
- -
£ £ £
å
Bước 1: Viết tam giác Pascal đến dòng thứ n, để có được các hệ số của nhị thức
Newton
( )
n
a b+


Bước 2: Ở đầu các dòng, ta viết các đơn thức khai triển nhị thức Newton
( )
1
n
a +
,
tức là của
1 0
, , ,
n n
a a a
-
¼

Bước 3: Nhân lần lượt các đơn thức ở đầu dòng mỗi cột với các đơn thức còn lại
trên mỗi dòng đó, rồi cộng các kết quả lại.
10
Kết qủa cuối cùng là:
( )
4
4
3 3
2 2 2 2 2
3 2 2 3
4 3 2 2 3 4
4 4
6 12 6
4 12 12 4
4 6 4
a b c a

a b a c
a b a bc a c
ab ab c abc ac
b b c b c bc c
+ + =
+ +
+ + +
+ + + +
+ + + + +

4.2. Mã Giả
Bài toán: khai triển tam thức Newton
( )
n
a b c+ +

Input: nhập bậc n của tam thức
Output: chuổi tam thức Newton:
0 0
( ) .
p
n
n p n p q p q q
n p
p q
a b c C a C b c
- -
= =
æ ö
ç ÷

+ + = =
ç ÷
è ø
å å
Thuật toán:
Bước 1: nhập n vào
Bước 2: i:=0; s:=’ ‘;
11
Bước 3: nếu i > n thì dừng và in kết quả triển khai
Bước 4: tính

!
:
!( )!
i
n
n
C
i n i
=

(* hàm tohop(n,k) *)
• chèn

i n i
n
c a

vào chuổi S (* hàm chen(s1,s2) chen s1 vào s2 *)
• chèn “ ( “ vào S

Bước 5: j:=0;
Bước 6: nếu j>i thì i:=i+1 và quay lại Bước 3
Bước 7: tính

i!
:
j!(i )!
j
i
C
j
=

(* gọi tohop(i,j) *)
• chèn

j i j
i
c a

vào chuổi S (* hàm chen(s1,s2) chen chuổi s1 vào chuổi s2 *)
• chèn “ + “ vào S
• chèn “ ) “ vào S
Bước 8: j:=j+1; quay lại bước 6
4.3. Chương trình khai triển tam thức Newton :
uses crt;
var s,st:string;
n:byte;
ch:char;
function gt(n:byte):longint;

var i:byte;
t:longint;
begin
t:=1;
for i:=1 to n do t:=t*i; gt:=t;
end;
function tohop(n,k:byte):longint;
begin
tohop:=gt(n)div(gt(k)*gt(n-k));
end;
function IntToStr(i:longint):string;
var
s:string;
12
begin
str(i,s);
IntToStr:=s;
end;
procedure chen(s2:string;Var s1:string);
var l:byte;
begin
l:=length(s1);
insert(s2,s1,l);
end;
procedure nhithuc(a,b:char;n:byte);
var i,j,k:byte;
s1,s2:string;
begin
for i:=0 to n do
begin

chen(inttostr(tohop(n,i)),s);
chen(a,s);
chen('^',s);
chen(inttostr(n-i),s);
chen(b,s);
chen('^',s);
chen(inttostr(i),s);
chen('+ ',s);
end;
delete(s,length(s)-2,2);
end;
procedure tamthuc(a,b,c:char;n:byte);
var
i,j:byte;
begin
for i:=0 to n do
begin
chen(inttostr(tohop(n,i)),s);
chen(a,s);
chen('^',s);
chen(inttostr(n-i),s);
chen('(',s);
nhithuc(b,c,i);
chen(')',s);
chen('+ ',s);
end;
13
delete(s,length(s)-2,2);
end;
BEGIN

clrscr;
s:=' ';
writeLN('CHUONG TRINH TRIEN KHAI TAM THUC');
WRITEln('DANG: (a+b+c)^n ');
writeln;
ch:='r';
while ord(ch)<>27 do
begin
write('Nhap bac cua tam thuc vao : ');
readln(n);
write('(a+b+c)^',n,'=');
tamthuc('a','b','c',n) ;
write(s);
writeln;
writeln;
write('NHAN PHIM ESC DE THOAT');
CH:=readkey;
clrscr;
writeLN('CHUONG TRINH TRIEN KHAI TAM THUC');
WRITEln('DANG: (a+b+c)^n ');
writeln;
S:=' ';
end;
readln;
end.
14

×