Giải quyết mối quan hệ lặp lại với n làm tham số


18

Xem xét sự tái phát

T(n)= =nT(n)+cn

cho với một số hằng số dương và .n>2cT(2)= =1

Tôi biết định lý Master để giải quyết các đợt tái phát, nhưng tôi không chắc chắn về cách chúng ta có thể giải quyết mối quan hệ này bằng cách sử dụng nó. Làm thế nào để bạn tiếp cận tham số căn bậc hai?


5
Định lý Master không được áp dụng ở đây; không thể được viết là . Bạn đã thử cái gì khác? nnb
Raphael

@Raphael: Tôi đã thử phương pháp thay thế, nhưng dường như bị mắc kẹt về giá trị nào tôi nên chọn để thay thế.
người tìm kiếm

1
Làm thế nào về "mở ra sự tái phát một vài lần, quan sát một mô hình, đoán giải pháp và chứng minh nó "?
Raphael

Vâng, đây là lần đầu tiên tôi bắt gặp loại này, có thể một số trợ giúp ở đây sẽ giúp tôi giải quyết các vấn đề tự nhiên trong tương lai một cách dễ dàng.
người tìm kiếm

Vì bạn đề cập đến Định lý chủ, tôi giả sử bạn cần giải quyết mối quan hệ này cho các giới hạn tiệm cận và không thực sự cần biểu thức dạng đóng. Đưa ra dưới đây, có một số giải pháp tốt để tìm biểu thức dạng đóng, cũng cho độ phức tạp tiệm cận. Tuy nhiên, nếu bạn chỉ cần độ phức tạp tiệm cận, việc phân tích đơn giản hơn. Có một cái nhìn ở đây để có một lời giải thích tốt về việc tìm kiếm sự phức tạp tiệm cận, với một giải pháp trực quan tốt cho trường hợp vấn đề của bạn.
Paresh

Câu trả lời:


9

Chúng tôi sẽ sử dụng đề xuất của Raphael và mở ra sự tái diễn. Sau đây, tất cả các logarit là cơ sở 2. Chúng tôi nhận được

nơiβ(n)là bao nhiêu lần bạn phải lấy căn bậc hai để bắt đầu với n, và đạt được 2. Nó chỉ ra rằngβ(n)=loglogn. Làm thế nào bạn có thể thấy điều đó? Xem xét: n

T(n)= =n1/2T(n1/2)+cn= =n3/4T(n1/4)+n1/2cn1/2+cn= =n7/số 8T(n1/số 8)+n3/4cn1/4+2cn= =n15/16T(n1/16)+n7/số 8cn1/số 8+3cnGiáo dục= =n2T(2)+cnβ(n).
β(n)β(n)= =đăng nhậpđăng nhậpn Vì vậy, số lần bạn cần phải thực hiện các căn bậc hai để đạt được 2 là giải pháp cho1
n= =2đăng nhậpnn1/2= =212đăng nhậpnn1/4= =214đăng nhậpnGiáo dục
, đó làloglogn. Vì vậy, giải pháp cho đệ quy làcnloglogn+112tđăng nhậpn1đăng nhậpđăng nhậpn. Để làm cho điều này hoàn toàn nghiêm ngặt, chúng ta nên sử dụng phương pháp thay thế và rất cẩn thận về cách mọi thứ được làm tròn. Khi tôi có thời gian, tôi sẽ cố gắng thêm phép tính này vào câu trả lời của mình.cnđăng nhậpđăng nhậpn+12n

"Bạn cần phải lấy căn bậc hai lần" - đó là một cái gì đó mới bắt đầu có thể được mong đợi để xem? Ngoài ra, kết quả của bạn không phù hợp với Yuval; nó chỉ nhằm mục đích không có triệu chứng? đăng nhậpđăng nhậpn
Raphael

@Raphael: Yuval đã mắc lỗi, hiện anh ấy đã sửa. Tôi sẽ giải thích căn bậc hai trong câu trả lời của tôi.
Peter Shor

3
Một ý tưởng khác để thấy rằng đệ quy lấy là như sau: Bằng cách lấy căn bậc hai của n, bạn giảm một nửa các chữ số cần thiết cho biểu diễn nhị phân của n . Vì vậy, đầu vào của bạn cần w = log n bit và bạn chia kích thước từ cho 2 cho mỗi cấp của đệ quy. Do đó bạn dừng lại sau khi đăng nhập w = log log n bước. Ôi(đăng nhậpđăng nhậpn)nnw=lognđăng nhậpw= =đăng nhậpđăng nhậpn
A.Schulz

10

Trong bình luận của bạn, bạn đã đề cập rằng bạn đã cố gắng thay thế nhưng bị mắc kẹt. Đây là một dẫn xuất hoạt động. Động lực là chúng ta muốn thoát khỏi những nhân ở phía bên tay phải, để lại cho chúng ta một cái gì đó trông giống nhưU(n)=U(n. Trong trường hợp này, mọi thứ diễn ra rất độc đáo:Bạn(n)= =Bạn(n)+SomethTôing

Bây giờ hãy điều đơn giản hóa việc thậm chí còn hơn nữa, bằng cách thay đổi các bản ghi (kể từlg

T(n)=n T(n)+nso, dividing by n we getT(n)n=T(n)n+1and letting n=2m we haveT(2m)2m=T(2m/2)2m/2+1
). Đặt S ( m )lgn=(1/2)lgn Aha! Đây là một sự tái diễn nổi tiếng với giải pháp S(m)=Θ(lgm) Quay trở lại vớiT(
S(m)=T(2m)2mso our original recurrence becomesS(m)=S(m/2)+1
S(m)= =Θ(lgm)
, sau đó chúng ta có, với n = 2 m (và vì vậy m = lg n ), T ( n )T()n= =2mm= =lgn Vậy T ( n ) = Θ ( n
T(n)n= =Θ(lglgn)
.T(n)= =Θ(nlglgn)

6

Nếu bạn viết bạn có T ( m ) = mm= =đăng nhậpn .T(m)= =m2T(m2)+c2m 

Bây giờ bạn biết cây đệ quy có cao của trật tự , và một lần nữa nó không khó để nhìn thấy nó của O ( 2 m ) ở mỗi cấp, vì vậy tổng thời gian chạy là: O ( ( log m ) 2 m ) , trong đó kết luận O ( n log log n ) cho n .Ôi(đăng nhậpm)Ôi(2m) Ôi((đăng nhậpm)2m) Ôi(nđăng nhậpđăng nhậpn) n

Trong tất cả khi bạn nhìn thấy hoặcn an, là tốt để kiểm tra logarit.nmộtb,một<b 

PS: Chắc chắn bằng chứng nên bao gồm nhiều chi tiết hơn bằng cách tôi bỏ qua chúng.


2

Hãy làm theo đề xuất của Raphael, với : T ( n ) = T ( 2 2 k )n= =22k

T(n)= =T(22k)= =22k-1T(22k-1)+c22k= =22k-1+2k-2T(22k-2)+c(22k+22k)= == =22k-1+2k-2++20T(220)+c(22k+22k++22k)= =22k-1+ck22k= =(cđăng nhậpđăng nhậpn+1/2)n.

Chỉnh sửa: Cảm ơn Peter Shor đã sửa chữa!


22kGiáo dục

22k

22knT(2)

1
T(n)= =nT(n)+cn

1

T(n)= =n T(n)+n= =n1/2(n1/4 T(n1/4)+n1/2)+n= =n1-1/4 T(n1/4)+2n.

k

T(n)= =n1-1/2kT(n1/2k)+kn.

n1/2k= =2k

n1/2k= =2đăng nhậpn= =2kk= =đăng nhậpđăng nhậpn.

k= =đăng nhậpđăng nhậpn

T(n)= =n2T(2)+nđăng nhậpđăng nhậpn.

2
Bạn có thể viết lại hình ảnh của bạn để MathJax? Chúng tôi không khuyến khích hình ảnh với văn bản là câu trả lời.
Ác

1
@PKG Có vẻ như chỉnh sửa của bạn hơi khác và bạn cũng giải thích các bước, có thể bạn có thể tự trả lời.
Ác
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.