1. Trang chủ
  2. » Công Nghệ Thông Tin

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

10 333 0

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 182,64 KB

Nội dung

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 . 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) =. 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ý. 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

Ngày đăng: 09/07/2014, 21:20

TỪ KHÓA LIÊN QUAN

w