10
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA KHOA HỌC MÁY TÍNH MÔN HỌC PHÂN TÍCH VÀ THIẾT KẾ THUẬT TOÁN BÀI TẬP THỰC HÀNH SỐ 1.b ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA CÁC CHƯƠNG TRÌNH NHỜ KỸ THUẬT SƠ CẤP Lớp: CS112.G12 GVLT: Huỳnh Thị Thanh Thương GVTH: Châu Kim Hùng SVTH: - Trần Minh Nhật – 13520583 - Phạm Nhật Nam – 13520520 - Nguyễn Hồng Nhân – 13520572 TP.Hồ Chí Minh, tháng 09 năm 2015

TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

Embed Size (px)

DESCRIPTION

Một số bài tập về đếm số phép gán và so sánh của thuật toán

Citation preview

Page 1: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC MÁY TÍNH

MÔN HỌC

PHÂN TÍCH VÀ THIẾT KẾ THUẬT TOÁN

BÀI TẬP THỰC HÀNH SỐ 1.b

ĐÁNH GIÁ ĐỘ PHỨC TẠP CỦA CÁC CHƯƠNG TRÌNH NHỜ KỸ THUẬT SƠ CẤP

Lớp: CS112.G12

GVLT: Huỳnh Thị Thanh Thương

GVTH: Châu Kim Hùng

SVTH:

- Trần Minh Nhật – 13520583

- Phạm Nhật Nam – 13520520

- Nguyễn Hồng Nhân – 13520572

TP.Hồ Chí Minh, tháng 09 năm 2015

Page 2: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

Bài 1.

a)

i = 1; 1 g

ret = 0; 1 g

s = 0; 1 g

while ( i ≤ n) n+1ss

{

j = 1 ; n g

s = s+1/i; // {số thực} n g

while (j ≤ s )

{

ret = ret + i*j;

j = j + 1;

}

i = i + 1; n g

}

Đặt α i là số lần lặp của vòng while trong và xét riêng với vòng while ngoài

while (j ≤ s ) α i+1 ss

{

ret = ret + i*j; α i g

j = j + 1; α i g

Page 3: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

}

Gán (n) = 3 + 3n + ∑i=1

n

2α i

So sánh (n)= n+1 + ∑i=1

n

αi+1

*Tính α i:

Số lần lặp của vòng while trong = α i = số j ,với j từ 1->i, tương ứng với mỗi i ở vòng

while ngoài thì số lần lặp ở while trong tương ứng với s, với s là: ⌊∑j=1

i1j⌋

Tương ứng với mỗi i ở vòng while ngoài thì số lần lặp ở vòng while trong sẽ là s, với s là:

⌊∑j=1

i1j⌋

Như vậy α i=⌊∑j=1

i1j⌋

Suy ra:

Gán (n) = 3+3n+∑i=1

n

2 ⌊∑j=1

i1j⌋

So sánh (n) = n+1+∑i=1

n

(⌊∑j=1

i1j⌋+1)

b)

i=0;

A[n]=x;

While A[i] ≠ x do;

Page 4: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

i=i+1;

endw;

Đoạn chương trình sẽ dừng khi A[i] = x

Đoạn chương trình có thể dừng sớm hơn hoặc tối đa là khi i = n

Bài 2)

a)

float Delta (float x, long n)

{

long i= 1; float z = 0; 2 g

while ( i ≤ n) n+1 ss

{

long j = 1, k=1 ; float t = 1; 3n g

while (j ≤ i )

{

t = t*x;

k=k+2;

j = j+k;

}

z = z+i*t; n g

i=i+1; n g

}

Page 5: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

return z;

}

Đặt α i là số lần lặp của vòng while trong và xét riêng với vòng while ngoài

while (j ≤ i ) α i+1 ss

{

t = t*x; α i g

k=k+2; α i g

j = j+k; α i g

}

Gán (n) = 2+5n+∑i=1

n

3α i

So sánh (n) = n+1+∑i=1

n

(α ¿¿ i+1)¿

*Tính α i:

Với: k = 1; j = 1;

k = 3; j = 4;

k = 5; j = 9;

k = 7; j = 16;

Như vậy: Số lần lặp của vòng while trong là α i = số lần j chạy ,với j từ 1 -> i với j là số

chính phương

Số lần lặp của j bằng với số phần tử của tập hợp {r | r ≥ 1, r2≤i} = ⌊√i ⌋

Page 6: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

α i = ⌊√i ⌋

Gán (n) = 2+5n+∑i=1

n

3 ⌊√ i ⌋

So sánh (n) = n+1+∑i=1

n

(⌊√i ⌋+1)

b)

float Alpha (float x, long n)

{

long i= 1; float z = 0; 2 g

while ( i ≤ n) n+1 ss

{

long j = 1; float t = 1; 2n g

while (j ≤ i )

{

t = t*x;

j = 2*j;

}

z = z+i*t; i=i+1; 2n g

}

return z;

}

Đặt α i là số lần lặp của vòng while trong và xét riêng với vòng while ngoài

Page 7: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

while (j ≤ i ) α i+1

{

t = t*x; α i

j = 2*j; α i

}

Gán (n) = 2+2n+∑i=1

n

2α i

So sánh (n) = n+1+∑i=1

n

(α ¿¿ i+1)¿

*Tính α i:

Số lần lặp của vòng while trong làα i=¿ số lần j chạy, với j từ 1 -> i, j thuộc tập hợp

{ 2t | t ≥0, 2t≤ i}

Vậy số lần lặp của vòng while trong: α i=⌊ log2 i ⌋

Gán (n) = 2+2n+2∑i=1

n

⌊ log2i ⌋

So sánh (n) = n+1+∑i=1

n

(⌊ log2 i ⌋+1)

c)

float Epsi (float x, long n)

{

long i= 1; {1g}

float z = 0;{1g}

Page 8: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN

while ( i ≤ n){ n+1 ss}

{

long j = 1; {ng};

float t = 1; {ng};

while (j ≤ i ) {α i +1 ss}

{

t = t*x;{ α i g}

j = j+1; { α i g}

}

z = z+i*t; {ng}

i=2*i; }{ ng}

return z;

}

Tinh α i ?

Đặt α i là số lần lặp của vòng while trong => α i=¿ sô lần lặp của j, với j

chạy từ 1-> i.

Gán(n)= 2 + 4n + ∑i=1

n

2 (i)

So sánh (n) = n+1+∑i=1

n

(i+1)

Page 9: TRƯỜNG-ĐẠI-HỌC-CÔNG-NGHỆ-THÔNG-TIN