Tải bản đầy đủ (.pdf) (10 trang)

Cấu trúc dữ liệu và giải thuật (phần 9) pdf

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 (182.64 KB, 10 trang )

Please purchase a
Please purchase a
personal license.
personal license.
B
B
À
À
I TO
I TO
Á
Á
N ĐA TH
N ĐA TH


C
C
B
B
à
à
i to
i to
á
á
n đa th
n đa th


c


c
Bài toán:
Cho đa thức có dạng sau:
P(x)
= a
n
x
n
+ a
n-1
x
n-1
+ a
n-2
x
n-2
…+ a
2
x
2
+a
1
x+a
0
Tính giá trị đa thức. Trong đó biết giá trị
A=[a
n
,…,a
0
] , input x  P(x)

Thu
Thu


t to
t to
á
á
n cơ b
n cơ b


n
n
 Thuật toán:
result = a
0
+ a
1
*x;
xpower = x;
for (int i=2;i<n;i++)
{ xpower = xpower *x;
result = result + a
i
*xpower;
}
Đánh giá thuật toán:
- Số phép cộng: 1+ (n-1) = n
- Số phép nhân: 1+ 2*(n-1) = 2n-1

Thu
Thu


t to
t to
á
á
n Horner
n Horner
Phân tích đa thức:
P(x) = a
n
x
n
+ a
n-1
x
n-1
+ a
n-2
x
n-2
…+ a
2
x
2
+a
1
x+a

0
 ({…[(a
n
x+a
n-1
)*x+a
n-2
]*x+…+a
2
}*x+a
1
)*x+a
0
Thuật toán:
result = a
n
;
for (int i=n-1;i>=0;i )
{ result = result * x;
result = result + a
i
;
}
Thu
Thu


t to
t to
á

á
n Horner
n Horner
Đánh giá thuật toán:
- Số phép cộng: n
- Số phép nhân: n
 So với thuật toán cơ bản, thuật toán Horner có số
phép nhân giảm ½ lần
Thu
Thu


t to
t to
á
á
n ti
n ti


n x
n x


lý h
lý h


s
s



Ví dụ: Tính x
256
C1: for (int i=1;i<=256;i++)
result = result * x;
 Thực hiện 255 phép nhân
C2: result = x*x;
result = result * result; // 3 times
 Thực hiện 4 phép nhân
Thu
Thu


t to
t to
á
á
n ti
n ti


n x
n x


lý h
lý h



s
s


Thuật toán:
- Để sử dụng thuật toán này thì a
n
=1, và n = 2
k
-1.
- Đa thức P(x) lúc này có thể biểu diễn thành:
P(x) = (x
j
+b)*q(x) + r(x) trong đó j = 2
k-1
- Tiếp tục làm tương tự đối với q(x) và r(x) như p(x)
- Vấn đề là phải chọn b cẩn thận
Thu
Thu


t to
t to
á
á
n ti
n ti


n x

n x


lý h
lý h


s
s


Đánh giá thuật toán:
P(x)=(x
4
+5)*[(x
2
-1)*(x+4)+(x+12)]+[(x
2
+1)*(x-11)+(x-26)]
- Số phép nhân: x
2
 1 phép nhân
x
4
= x
2
*x
2
 1 phép nhân
 3 phép nhân

- Số phép cộng: 10
So sánh với các thuật toán khác:
Thuật toán Phép nhân Phép cộng
Cơ bản 13 7
Horner 7 7
Xử lý hệ số 5 10
T
T


ng k
ng k
ế
ế
t
t
Bài tập: Phân tích đa thức sau theo 2 phương
pháp Horner và Xử lý hệ số
x
7
+6x
6
+4x
4
-2x
3
+3x
2
-7x+5
Thuật toán Phép nhân Phép cộng

Cơ bản 2n-1 n
Horner n n
Xử lý hệ số n/2+lgn (3n-1)/2

×