۰
subtitle
ارسال: #۱
  
طراحی الگوریتم - مرتبه زمانی
وقتی پیچیدگی زمانی یک تابع رو با (T (n نمایش میدیم، منظورمون بدست آوردن مقدار تابع نیست، بلگه تعداد دفعات تکرار تابع هست.
خوب خالا سوال من اینه:
اگر تابع ما از پیچیدگی زمانی (T (n-1) X T (n-1 داشته باشه. منظور این هست که در هر Tn تابع ذوبار T n-1 خواهد بود یعنی تشکیل یک درخت دودویی کامل میده با مرتبه زمانی (O (2^n و یا منظور این هست که باید مقادیر (T (n-1 در T n-1 بشه؟
توی کتاب (مقسمی صفحه ۲۶) گفته شده (T (n-1) X T (n-1 داری پیچیدیگی زمانی (O (2^n هست. اگر اینطوره یعنی تفاوتی نمی کنه عملگر بین (T (n ها ضرب باشه یا جمع؟
چون برای (T (n-1) + T (n-1 هم پیچیدگی زمانی (O (2^n هست.
خوب خالا سوال من اینه:
اگر تابع ما از پیچیدگی زمانی (T (n-1) X T (n-1 داشته باشه. منظور این هست که در هر Tn تابع ذوبار T n-1 خواهد بود یعنی تشکیل یک درخت دودویی کامل میده با مرتبه زمانی (O (2^n و یا منظور این هست که باید مقادیر (T (n-1 در T n-1 بشه؟
توی کتاب (مقسمی صفحه ۲۶) گفته شده (T (n-1) X T (n-1 داری پیچیدیگی زمانی (O (2^n هست. اگر اینطوره یعنی تفاوتی نمی کنه عملگر بین (T (n ها ضرب باشه یا جمع؟
چون برای (T (n-1) + T (n-1 هم پیچیدگی زمانی (O (2^n هست.
۱
ارسال: #۲
  
طراحی الگوریتم - مرتبه زمانی
(۰۹ مهر ۱۳۹۱ ۱۱:۳۷ ب.ظ)مورتن نوشته شده توسط: نه عزیزم t(n-1) + t(n-1) میشه O(n)دوست گرامی، اون t(n/2)+t(n/2) هست که میشه teta(n) که برحسب فرمول زیر بدست میاد:
ضمنا کتاب مقسمی بدرد نمی خوره و اشتباه زیاد داره ، اثبات غلط بودن یکبار فراخوانی و دوبار فراخوانی هم بعدا بحث می کنم اگه هم اشتباه کردم اقرار خواهم کرد.
اما توی کتاب CLRS حل مسائل آورده t_n=1 + t_n minus 1 + t_n minus 1 =1+ 2 t_n minus 1 =order_(2^n) minus 1
==
(T (n-1) X T (n-1 هم جوابش میشه order_n^2 که دوستمون بهش اشاره داشتن.
==
در کتاب هادی یوسفی(پوران) داریم :
t_n =2t(n/2)+n = (1+lgn)*n
و داریم:
(t_n=2t(n/2) +logn! =n*log^2(n
==
اگر کسی تا اینجای کار حرفامو قبول داره دکمه ی سپاس رو بزنه.
۰
ارسال: #۳
  
طراحی الگوریتم - مرتبه زمانی
منظور محاسبه تعداد جملات هستش،مثلا برای ضرب همون قد باید تعداد جملات رو محاسبه کرد که برای جمع باید محاسبه کرد،دیگه کاری به این که مقدارش چقد میشه نداریم.امیدوارم متوجه شده باشید
۰
۰
ارسال: #۵
  
RE: طراحی الگوریتم - مرتبه زمانی
(T(N-1)+T(N-1 یعنی به ازای هر N . تابع T دوبار خودش را فراخوانی میکند پس برابر است با (۲T(N-1 و از مرتبه [tex]2^{\tfrac{N}{1}}[/tex]
ولی برای تابعی مثل (۲T(N-1 چون برای هر N رTیکبار خودش را فراخوانی میکند پس برابر است با( T(N-1 از مرتبه ( O(N
ولی برای تابعی مثل (۲T(N-1 چون برای هر N رTیکبار خودش را فراخوانی میکند پس برابر است با( T(N-1 از مرتبه ( O(N
ارسال: #۶
  
RE: طراحی الگوریتم - مرتبه زمانی
(۱۰ مهر ۱۳۹۱ ۱۰:۲۷ ق.ظ)m_sardaari نوشته شده توسط: (T(N-1)+T(N-1 یعنی به ازای هر N . تابع T دوبار خودش را فراخوانی میکند پس برابر است با (۲T(N-1 و از مرتبه [tex]2^{\tfrac{N}{1}}[/tex]
ولی برای تابعی مثل (۲T(N-1 چون برای هر N رTیکبار خودش را فراخوانی میکند پس برابر است با( T(N-1 از مرتبه ( O(N
من نمی فهمم اصلا مگه (T(N-1)+T(N-1 با (۲T(N-1 فرق داره ؟اگه درخت بازگشتی اش رو بکشیم که عین همن.مرتبه اش هم این نمی شه
۰
ارسال: #۷
  
RE: طراحی الگوریتم - مرتبه زمانی
(۰۹ مهر ۱۳۹۱ ۰۷:۵۸ ب.ظ)kiantamar نوشته شده توسط: وقتی پیچیدگی زمانی یک تابع رو با (T (n نمایش میدیم، منظورمون بدست آوردن مقدار تابع نیست، بلگه تعداد دفعات تکرار تابع هست.
خوب خالا سوال من اینه:
اگر تابع ما از پیچیدگی زمانی (T (n-1) X T (n-1 داشته باشه. منظور این هست که در هر Tn تابع ذوبار T n-1 خواهد بود یعنی تشکیل یک درخت دودویی کامل میده با مرتبه زمانی (O (2^n و یا منظور این هست که باید مقادیر (T (n-1 در T n-1 بشه؟
توی کتاب (مقسمی صفحه ۲۶) گفته شده (T (n-1) X T (n-1 داری پیچیدیگی زمانی (O (2^n هست. اگر اینطوره یعنی تفاوتی نمی کنه عملگر بین (T (n ها ضرب باشه یا جمع؟
چون برای (T (n-1) + T (n-1 هم پیچیدگی زمانی (O (2^n هست.
به نظرم [tex]T(n)[/tex] یعنی زمان اجرای الگوریتم و نه تعداد دفعات تکرار ,مثلا[tex]T(n)=2T(n-1)[/tex] یعنی زمان اجرای [tex]T(n-1)[/tex] رو حساب کن در ۲ ضرب کن و همه میدونیم [tex]2T(n-1)=T(n-1) T(n-1)[/tex] و حاصل عبارت [tex]T(n-1)*T(n-1)[/tex] برابر [tex](T(n-1))^{2}[/tex] می شود و همونطور که میدونید [tex]T(n)=2T(n-1) 1[/tex] مسئله برج هانوی است که در کتاب های یوسفی و مقسمی با جایگذاری حل شده است ولی آیا [tex](T(n-1))^{2}[/tex] با جایگذاری قابل حله؟و یا با هر روش دیگه ای؟اگه کسی حل کرد لطفا حلشو بزاره.من هیچ مثالی برای ضرب دو عبارت زمان اجرای الگوریتم ندیم در کتاب CLRS.
اما ما همیشه عباراتی مثل [tex]T(n)=aT(n-b)[/tex] و یا [tex]T(n)=aT(\tfrac{n}{b})[/tex] داریم این دو فرمول هم در کتابها به این صورت پاسخ داده شدند که[tex]\theta (a^{\frac{n}{b}})[/tex] برای نوع اول و برای نوع دوم معمولا از قضیه master استفاده میشود.
۰
ارسال: #۸
  
RE: طراحی الگوریتم - مرتبه زمانی
[tex]t(n)=2t(n-1)[/tex]
[tex]r-2=0[/tex]
[tex]r=2[/tex]
[tex]o(2^{n})[/tex]
[tex]r-2=0[/tex]
[tex]r=2[/tex]
[tex]o(2^{n})[/tex]
۰
۰
ارسال: #۱۰
  
طراحی الگوریتم - مرتبه زمانی
این معادله بازگشتی رو که مربو میشه به مرتب سازی ادغامی چه طوری باید اثباتش کنیم ؟
t(n)= 2t(n/2)+(n-1
(راهنماییش هم اینه:
n=2^k فرض کنیم.و بعد از یه سری محاسبات به این برسیم:
t(n)=O(nlog
)
t(n)= 2t(n/2)+(n-1
(راهنماییش هم اینه:
n=2^k فرض کنیم.و بعد از یه سری محاسبات به این برسیم:
t(n)=O(nlog
)
۰
ارسال: #۱۱
  
RE: طراحی الگوریتم - مرتبه زمانی
[tex]n=2^{k}\Rightarrow k=logn[/tex]
[tex]T(2^{K})=2T(2^{K-1}) 2^{K}-1[/tex]
[tex]T(K)=2T(K-1) 2^{K}-1[/tex]
حالا اینو حل میکنیم
[tex](k-2)^{_{2}}[/tex]
[tex]c_{1}2^{^{k}} c_{2}k2^{^{k}}[/tex]
:[tex]k=logn[/tex]حالا داشتیم[tex]c_{1}n^{log2} c_{2}logn*n[/tex]
[tex]T(2^{K})=2T(2^{K-1}) 2^{K}-1[/tex]
[tex]T(K)=2T(K-1) 2^{K}-1[/tex]
حالا اینو حل میکنیم
[tex](k-2)^{_{2}}[/tex]
[tex]c_{1}2^{^{k}} c_{2}k2^{^{k}}[/tex]
:[tex]k=logn[/tex]حالا داشتیم[tex]c_{1}n^{log2} c_{2}logn*n[/tex]
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close