۲
subtitle
ارسال: #۱
  
حل رابطه بازگشتی
سلام دوستان
میشه روش حل این سوال را توضیح بدید
[tex]T(n)=\frac{1}{n}\sum_{i=1}^{n-1}T(i)\: \: 3n\: \: \: \: \: T(1)=1[/tex]
( منبع: سوال ۱۳ فصل اول کتاب ۶۰۰ تست Smile )
میشه روش حل این سوال را توضیح بدید
[tex]T(n)=\frac{1}{n}\sum_{i=1}^{n-1}T(i)\: \: 3n\: \: \: \: \: T(1)=1[/tex]
( منبع: سوال ۱۳ فصل اول کتاب ۶۰۰ تست Smile )
۲
ارسال: #۲
  
RE: حل رابطه بازگشتی
سلام
به نظر من اینطور حل میشه:
[tex]T(n)=\frac{1}{n}[T(1) T(2) ... T(n-3) T(n-2) T(n-1) (3n)][/tex]
حالا [tex]T(n-1)[/tex] رو هم بست میدم:
[tex]T(n-1)=\frac{1}{n-1}[T(1) T(2) ... T(n-3) T(n-2) (3(n-1))][/tex]
حالا باز شده ی [tex]T(n-1)[/tex] رو در[tex]T(n)[/tex] جایگزین میکنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n][/tex]
و یک +۳ و -۳ به داخل [ ] اضافه می کنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n 3-3][/tex]
حالاداریم
[tex]3n 3-3 = (3n-3) 3\: =\: 3(n-1) 3[/tex]
یه ذره جابجایی برای فهم بهتر...
[tex]T(n)=\: \frac{1}{n}[\frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] [T(1) T(2) ... T(n-2) 3(n-1)] 3][/tex]
حالا میبینیم که همه چیز دوبار تکرار شده ودر واقع دوبار [tex]T(n-1)[/tex] بسط داده شده و فقط مشکل ما نبودن کسر [tex]\frac{1}{n-1}[/tex] در ابتدای عبارت دوم هست که با یک ضریب n-1 درست میشه البته اون +۳ رو هم فراموش نمی کنم!
یعنی اینجوری!
[tex]T(n)\: =\: \frac{1}{n}[T(n-1) (n-1)T(n-1) 3] =\: \frac{1}{n}[nT(n-1) 3] =\: T(n-1) \frac{3}{n} \: \: \: \: [/tex]
که اگه اشتباه نکنم میشه:
[tex]\: T(n)=T(n-1) \frac{3}{n}\: =\ln(n)\: \: \: \: [/tex]
امیدوارم که مفید باشه
به نظر من اینطور حل میشه:
[tex]T(n)=\frac{1}{n}[T(1) T(2) ... T(n-3) T(n-2) T(n-1) (3n)][/tex]
حالا [tex]T(n-1)[/tex] رو هم بست میدم:
[tex]T(n-1)=\frac{1}{n-1}[T(1) T(2) ... T(n-3) T(n-2) (3(n-1))][/tex]
حالا باز شده ی [tex]T(n-1)[/tex] رو در[tex]T(n)[/tex] جایگزین میکنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n][/tex]
و یک +۳ و -۳ به داخل [ ] اضافه می کنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n 3-3][/tex]
حالاداریم
[tex]3n 3-3 = (3n-3) 3\: =\: 3(n-1) 3[/tex]
یه ذره جابجایی برای فهم بهتر...
[tex]T(n)=\: \frac{1}{n}[\frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] [T(1) T(2) ... T(n-2) 3(n-1)] 3][/tex]
حالا میبینیم که همه چیز دوبار تکرار شده ودر واقع دوبار [tex]T(n-1)[/tex] بسط داده شده و فقط مشکل ما نبودن کسر [tex]\frac{1}{n-1}[/tex] در ابتدای عبارت دوم هست که با یک ضریب n-1 درست میشه البته اون +۳ رو هم فراموش نمی کنم!
یعنی اینجوری!
[tex]T(n)\: =\: \frac{1}{n}[T(n-1) (n-1)T(n-1) 3] =\: \frac{1}{n}[nT(n-1) 3] =\: T(n-1) \frac{3}{n} \: \: \: \: [/tex]
که اگه اشتباه نکنم میشه:
[tex]\: T(n)=T(n-1) \frac{3}{n}\: =\ln(n)\: \: \: \: [/tex]
امیدوارم که مفید باشه
ارسال: #۳
  
RE: حل رابطه بازگشتی
(۰۱ شهریور ۱۳۹۳ ۱۲:۴۶ ق.ظ)reza777gh نوشته شده توسط: سلامروش درست همینه!!
به نظر من اینطور حل میشه:
[tex]T(n)=\frac{1}{n}[T(1) T(2) ... T(n-3) T(n-2) T(n-1) (3n)][/tex]
حالا [tex]T(n-1)[/tex] رو هم بست میدم:
[tex]T(n-1)=\frac{1}{n-1}[T(1) T(2) ... T(n-3) T(n-2) (3(n-1))][/tex]
حالا باز شده ی [tex]T(n-1)[/tex] رو در[tex]T(n)[/tex] جایگزین میکنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n][/tex]
و یک +۳ و -۳ به داخل [ ] اضافه می کنم:
[tex]T(n)=\: \frac{1}{n}[T(1) T(2) ... T(n-2) \frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] 3n 3-3][/tex]
حالاداریم
[tex]3n 3-3 = (3n-3) 3\: =\: 3(n-1) 3[/tex]
یه ذره جابجایی برای فهم بهتر...
[tex]T(n)=\: \frac{1}{n}[\frac{1}{n-1}[T(1) ... T(n-2) 3(n-1)] [T(1) T(2) ... T(n-2) 3(n-1)] 3][/tex]
حالا میبینیم که همه چیز دوبار تکرار شده ودر واقع دوبار [tex]T(n-1)[/tex] بسط داده شده و فقط مشکل ما نبودن کسر [tex]\frac{1}{n-1}[/tex] در ابتدای عبارت دوم هست که با یک ضریب n-1 درست میشه البته اون +۳ رو هم فراموش نمی کنم!
یعنی اینجوری!
[tex]T(n)\: =\: \frac{1}{n}[T(n-1) (n-1)T(n-1) 3] =\: \frac{1}{n}[nT(n-1) 3] =\: T(n-1) \frac{3}{n} \: \: \: \: [/tex]
که اگه اشتباه نکنم میشه:
[tex]\: T(n)=T(n-1) \frac{3}{n}\: =\ln(n)\: \: \: \: [/tex]
امیدوارم که مفید باشه
البته من به این رسیدم
[tex]T(n)\: =\: \frac{n 1}{n}T(n-1)\: \: 3n[/tex]
ارسال: #۴
  
RE: حل رابطه بازگشتی
(۰۱ شهریور ۱۳۹۳ ۰۲:۲۵ ب.ظ)Riemann نوشته شده توسط:(01 شهریور ۱۳۹۳ ۱۲:۴۶ ق.ظ)reza777gh نوشته شده توسط: یعنی اینجوری!روش درست همینه!!
[tex]T(n)\: =\: \frac{1}{n}[T(n-1) (n-1)T(n-1) 3] =\: \frac{1}{n}[nT(n-1) 3] =\: T(n-1) \frac{3}{n} \: \: \: \: [/tex]
که اگه اشتباه نکنم میشه:
[tex]\: T(n)=T(n-1) \frac{3}{n}\: =\ln(n)\: \: \: \: [/tex]
امیدوارم که مفید باشه
البته من به این رسیدم
[tex]T(n)\: =\: \frac{n 1}{n}T(n-1)\: \: 3n[/tex]
سلام.
دوست عزیز اگه اصلا سوای حل کردن دقیق این رابطه همون به صورت سوالم نگاه کنی "حداقل حداقل" یه هزینه ۳n رو تو فراخوانی اول تابع داری که باعث میشه کلااااااا توابع هزینه های زیر [tex]\theta(n)[/tex] مثل [tex]\ln(n)[/tex] تو همون فراخوانی اول رد بشه !!!
ارسال: #۵
  
RE: حل رابطه بازگشتی
سلام درسته، من یادمه این شبیه تحلیل مرتبه زمانی مرتب سازی سریع هست، کتاب Introduction to algoirthms a creative approach رو اگه دم دست داری، قسمت مرتبه زمانی ها یه اینجور مثالی زده.
ارسال: #۶
  
RE: حل رابطه بازگشتی
(۰۱ شهریور ۱۳۹۳ ۰۳:۳۹ ب.ظ)Riemann نوشته شده توسط: سلام درسته، من یادمه این شبیه تحلیل مرتبه زمانی مرتب سازی سریع هست، کتاب Introduction to algoirthms a creative approach رو اگه دم دست داری، قسمت مرتبه زمانی ها یه اینجور مثالی زده.
سلام دوباره
حرف شما کاملا درسته و آقای منبر توی کتابش تابع بازگشتی زیر رو برای حل زمان مسئله مرتب سازی سریع معرفی کرده :
[tex]T(n)=n-1 \frac{2}{n}\sum_{i=1}^{n-1}T(i)[/tex]
ولی در واقع اگه یخورده دقت کنیم همین [tex]\frac{2}{n}[/tex] هست که وقتی بعنوان ضریب [tex]\alpha[/tex] و [tex]\beta[/tex] در تابع T ضرب میشه مجموع کسری بیشتر از مقدار ۱ رو به ما میده که خب براحتی طبق قضیه می تونیم اثبات کنیم که وقتی مجموع ضرایب بیشتر یک باشه هزینه ارتفاع این درخت [tex]\theta(f(n))\cdot\log n[/tex] هست(ضمنا تاثیر دقیق این [tex]\frac{2}{n}[/tex] رو توی سری هارمونیکی که آقای منبر معرفی کرده میشه دید). ولی توی مسئله ما ضریب [tex]\frac{1}{n}[/tex] رو داریم که با جمع زدن ضریب به کسری کمتر از ۱ می رسیم و باعث میشه "سری ثابت" رو برای ارتفاع درخت درنظر بگیریم.
ضمنا یه نکته داخل پرانتزی اینکه اگه تابع که برای مرتب سازی سریع معرفی شده رو حتی به صورت همون عبارت اولش یعنی
[tex]T(n)=n-1 \frac{1}{n}\sum_{i=1}^nT(i)[/tex]
نیز نگاه کنیم در اینجا سیگمای ما مجموع n تا عبارت و نه n-1 عبارت رو معرفی کرده که این باعث میشه دقیقا مجموع کسرهای ما ۱ بشه و طبق رابطه هزینه [tex]\theta(f(n))\cdot\log n[/tex] رو داشته باشیم.
نکته ریز اختلاف این دو مسئله در همین " مجموع کسرهای ضرایب که آیا ۱ میشه یا کمتر از ۱" هستش که خب باید بهش دقت بشه و آقای قدسی به همین دلیل هزینه [tex]\theta(n)[/tex] رو برای این مسئله معرفی کرده.
۰
ارسال: #۷
  
RE: حل رابطه بازگشتی
سلام خسته نباشید خیلی خوب توصیح دادید واقعا مرسی ولی جواب فکر کنم یه چیز دیگه میشد.ولی انصافا ادم اولین بار این جور سوالا رو میبینه خیلی خیلی سخته بخواد اینقدر ابتکاری حلشون کنه
ارسال: #۸
  
RE: حل رابطه بازگشتی
(۰۱ شهریور ۱۳۹۳ ۰۲:۰۴ ق.ظ)miladcr7 نوشته شده توسط: سلام خسته نباشید خیلی خوب توصیح دادید واقعا مرسی.ولی انصافا ادم اولین بار این جور سوالا رو میبینه خیلی خیلی سخته بخواد اینقدر ابتکاری حلشون کنه
خواهش میکنم. برای خودمم چیزی حدود نیم ساعت طول کشید تا حل شد! البته اگه درست باشه!
معمولا این سوال ها اگه نکته خاصی نداشته باشن با بسط دادن به یه جاهایی میرسن.
۰
ارسال: #۹
  
RE: حل رابطه بازگشتی
سلام . این سوال از نوع بازگشتی های معمولیه فقط صورتش یخورده آدم رو میترسونه، سخت نیست و براحتی قابل اثبات
اگر توجه کنیم فرم رابطه به صورت آشنای زیر هستش:
می دونیم که اگر [tex]\alpha \beta<1[/tex] جواب رابطه ما همون [tex]\theta(n)[/tex] میشه.
برای مثال فرض کنید ما [tex]n=3[/tex] قرار بدیم قسمت بازگشت تابع به صورت زیر باز میشه:
که خب ساختاری شبیه نوع صورت مسئله ما که در ابتدا گفته شد داره با این تفاوت ریز که دیگه خبری از ضریب n برای بازگشت وجود نداره و فقط ضرایب [tex]\alpha[/tex] و [tex]\beta[/tex] و امثالهم رو داریم. بزرگترین ضریب ثابت نیز همون فراخوانی آخر یعنی n-1 هستش (که البته کار ما رو برای اثبات نیز خیلی راحتر میکنه چرا که در سطوح بعدی درخت بازگشت دیگه خبری از هزینه به بزرگی ۳n وجود نداره و هزینه ها همگی ناچیز و مجموع ضرایبی کمتر از ۱ رو دارن).
در نهایت باعث میشه حد بالای رابطه رو در ابتدا [tex]T(n)=\sum_{i=1}^{\log n}c^in=\theta(n)[/tex] به ازای هر ورودی n برای جمع هزینه هر سطح درخت و کل ارتفاع درخت معرفی کنیم.
خب نکته آخر اینکه ضریب هزینه ثابت بازگشت ما (یعنی جمع کل سری در اینجا) خیلی کمتر از سری [tex]\sum^{\log n}_{i=1}c^in[/tex] است که معرفی شد چرا که ما توی بازگشتمون ضرایبی بسیار کمتر از n رو فراخوانی میکنیم (در حد یک عدد ثابت مثل [tex]\frac{1}{3}[/tex] یا [tex]\frac{2}{3}[/tex]). یعنی اگه بخوایم بهتر بگیم توی این مسئله ما فقط هزینه به بزرگی n رو در فراخوانی اول و در سطح اول درخت داریم (۳n) و برای بقیه سطوح درخت هزینه ثابت میشه که رابطه [tex]T(n)=3n \sum^{(\log n)-1}_{i=1}c^i[/tex] دقیقا هزینه کل رو نشون میده که از [tex]\theta(n)[/tex] هست. در اینجا هزینه c رو هم میتونیم [tex]c=\frac{n-1}{n}[/tex] تعریف کنیم(مخرج مشترک کسرها).
در هر صورت ما هزینه n رو "حداقل حداقل" در سطح اول درختمون داریم که باعث میشه رابطه رو حداقل از [tex]Omega(n)[/tex] معرفی کنیم.
حلشم که نگاه کردم از کتاب [tex]\theta(n)[/tex] رو با استقراء اثبات کرده.
اگر توجه کنیم فرم رابطه به صورت آشنای زیر هستش:
[tex]T(n)=T(\alpha n) T(\beta n) cn[/tex]
می دونیم که اگر [tex]\alpha \beta<1[/tex] جواب رابطه ما همون [tex]\theta(n)[/tex] میشه.
برای مثال فرض کنید ما [tex]n=3[/tex] قرار بدیم قسمت بازگشت تابع به صورت زیر باز میشه:
[tex]T(n)=\frac{T(1)}{3} \frac{T(2)}{3} 3n[/tex]
که خب ساختاری شبیه نوع صورت مسئله ما که در ابتدا گفته شد داره با این تفاوت ریز که دیگه خبری از ضریب n برای بازگشت وجود نداره و فقط ضرایب [tex]\alpha[/tex] و [tex]\beta[/tex] و امثالهم رو داریم. بزرگترین ضریب ثابت نیز همون فراخوانی آخر یعنی n-1 هستش (که البته کار ما رو برای اثبات نیز خیلی راحتر میکنه چرا که در سطوح بعدی درخت بازگشت دیگه خبری از هزینه به بزرگی ۳n وجود نداره و هزینه ها همگی ناچیز و مجموع ضرایبی کمتر از ۱ رو دارن).
در نهایت باعث میشه حد بالای رابطه رو در ابتدا [tex]T(n)=\sum_{i=1}^{\log n}c^in=\theta(n)[/tex] به ازای هر ورودی n برای جمع هزینه هر سطح درخت و کل ارتفاع درخت معرفی کنیم.
خب نکته آخر اینکه ضریب هزینه ثابت بازگشت ما (یعنی جمع کل سری در اینجا) خیلی کمتر از سری [tex]\sum^{\log n}_{i=1}c^in[/tex] است که معرفی شد چرا که ما توی بازگشتمون ضرایبی بسیار کمتر از n رو فراخوانی میکنیم (در حد یک عدد ثابت مثل [tex]\frac{1}{3}[/tex] یا [tex]\frac{2}{3}[/tex]). یعنی اگه بخوایم بهتر بگیم توی این مسئله ما فقط هزینه به بزرگی n رو در فراخوانی اول و در سطح اول درخت داریم (۳n) و برای بقیه سطوح درخت هزینه ثابت میشه که رابطه [tex]T(n)=3n \sum^{(\log n)-1}_{i=1}c^i[/tex] دقیقا هزینه کل رو نشون میده که از [tex]\theta(n)[/tex] هست. در اینجا هزینه c رو هم میتونیم [tex]c=\frac{n-1}{n}[/tex] تعریف کنیم(مخرج مشترک کسرها).
در هر صورت ما هزینه n رو "حداقل حداقل" در سطح اول درختمون داریم که باعث میشه رابطه رو حداقل از [tex]Omega(n)[/tex] معرفی کنیم.
حلشم که نگاه کردم از کتاب [tex]\theta(n)[/tex] رو با استقراء اثبات کرده.
۰
موضوعهای مرتبط با این موضوع... |
|||||
موضوع: | نویسنده | پاسخ: | بازدید: | آخرین ارسال | |
نظر در رابطه با استاد داور | علیصا | ۰ | ۱,۷۴۴ |
۱۴ مهر ۱۴۰۰ ۰۶:۰۵ ب.ظ آخرین ارسال: علیصا |
|
درخواست(محاسبه پیچیدگی زمانی)(بخش روابط بازگشتی) | Saman | ۶ | ۷,۴۹۲ |
۲۷ خرداد ۱۳۹۷ ۰۳:۲۴ ب.ظ آخرین ارسال: saeed_vahidi |
|
رابطه n~1 | Mr.R3ZA | ۰ | ۱,۹۸۳ |
۲۰ خرداد ۱۳۹۷ ۰۱:۳۵ ق.ظ آخرین ارسال: Mr.R3ZA |
|
توصیه های مهم در رابطه با انتخاب رشته (مهم) | Happiness.72 | ۰ | ۲,۱۵۱ |
۱۹ خرداد ۱۳۹۷ ۱۲:۳۶ ق.ظ آخرین ارسال: Happiness.72 |
|
رابطه چند به یک | somayeh afsh | ۰ | ۱,۷۳۹ |
۰۷ خرداد ۱۳۹۷ ۱۲:۲۸ ب.ظ آخرین ارسال: somayeh afsh |
|
رسم درخت بازگشتی برای t(n)=9t(n/3)+n | jumper | ۶ | ۶,۶۹۷ |
۱۷ دى ۱۳۹۶ ۰۶:۱۶ ب.ظ آخرین ارسال: jumper |
|
حل رابطه جایگذاری با تکرار | rahkaransg | ۱ | ۲,۳۳۱ |
۱۷ دى ۱۳۹۶ ۱۱:۲۹ ق.ظ آخرین ارسال: rahkaransg |
|
حل روابط بازگشتی درجه ۳ | rahkaransg | ۲ | ۳,۰۹۴ |
۱۴ دى ۱۳۹۶ ۰۵:۲۴ ب.ظ آخرین ارسال: rahkaransg |
|
جواب رابطه های بازگشتی | rahkaransg | ۰ | ۱,۸۴۹ |
۱۴ دى ۱۳۹۶ ۱۲:۲۴ ق.ظ آخرین ارسال: rahkaransg |
|
تقسیم در جبر رابطه ای | Ella | ۱ | ۲,۲۸۹ |
۲۸ آذر ۱۳۹۶ ۱۲:۰۰ ق.ظ آخرین ارسال: Ella |
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close