زمان کنونی: ۰۲ آذر ۱۴۰۳, ۱۰:۱۳ ق.ظ مهمان گرامی به انجمن مانشت خوش آمدید. برای استفاده از تمامی امکانات انجمن می‌توانید عضو شوید.
گزینه‌های شما (ورودثبت نام)

حل رابطه بازگشتی

ارسال:
  

shayesteb پرسیده:

حل رابطه بازگشتی

سلام دوستان

میشه روش حل این سوال را توضیح بدید

[tex]T(n)=\frac{1}{n}\sum_{i=1}^{n-1}T(i)\: \: 3n\: \: \: \: \: T(1)=1[/tex]

( منبع: سوال ۱۳ فصل اول کتاب ۶۰۰ تست Smile )
نقل قول این ارسال در یک پاسخ

۲
ارسال:
  

reza777gh پاسخ داده:

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]

امیدوارم که مفید باشه
نقل قول این ارسال در یک پاسخ

ارسال:
  

Riemann پاسخ داده:

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]
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

ADELZX پاسخ داده:

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] تو همون فراخوانی اول رد بشه !!!
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

Riemann پاسخ داده:

RE: حل رابطه بازگشتی

سلام درسته، من یادمه این شبیه تحلیل مرتبه زمانی مرتب سازی سریع هست، کتاب Introduction to algoirthms a creative approach رو اگه دم دست داری، قسمت مرتبه زمانی ها یه اینجور مثالی زده.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

ارسال:
  

ADELZX پاسخ داده:

RE: حل رابطه بازگشتی

(۰۱ شهریور ۱۳۹۳ ۰۳:۳۹ ب.ظ)Riemann نوشته شده توسط:  سلام درسته، من یادمه این شبیه تحلیل مرتبه زمانی مرتب سازی سریع هست، کتاب Introduction to algoirthms a creative approach رو اگه دم دست داری، قسمت مرتبه زمانی ها یه اینجور مثالی زده.

سلام دوباره Smile
حرف شما کاملا درسته و آقای منبر توی کتابش تابع بازگشتی زیر رو برای حل زمان مسئله مرتب سازی سریع معرفی کرده :

[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] رو برای این مسئله معرفی کرده.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

MiladCr7 پاسخ داده:

RE: حل رابطه بازگشتی

سلام خسته نباشید خیلی خوب توصیح دادید واقعا مرسی ولی جواب فکر کنم یه چیز دیگه میشد.ولی انصافا ادم اولین بار این جور سوالا رو میبینه خیلی خیلی سخته بخواد اینقدر ابتکاری حلشون کنه
نقل قول این ارسال در یک پاسخ

ارسال:
  

reza777gh پاسخ داده:

RE: حل رابطه بازگشتی

(۰۱ شهریور ۱۳۹۳ ۰۲:۰۴ ق.ظ)miladcr7 نوشته شده توسط:  سلام خسته نباشید خیلی خوب توصیح دادید واقعا مرسی.ولی انصافا ادم اولین بار این جور سوالا رو میبینه خیلی خیلی سخته بخواد اینقدر ابتکاری حلشون کنه


خواهش میکنم. برای خودمم چیزی حدود نیم ساعت طول کشید تا حل شد! البته اگه درست باشه!
معمولا این سوال ها اگه نکته خاصی نداشته باشن با بسط دادن به یه جاهایی میرسن.
یافتن تمامی ارسال‌های این کاربر
نقل قول این ارسال در یک پاسخ

۰
ارسال:
  

ADELZX پاسخ داده:

RE: حل رابطه بازگشتی

سلام . این سوال از نوع بازگشتی های معمولیه فقط صورتش یخورده آدم رو میترسونه، سخت نیست و براحتی قابل اثبات Smile

اگر توجه کنیم فرم رابطه به صورت آشنای زیر هستش:
[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] رو با استقراء اثبات کرده.
نقل قول این ارسال در یک پاسخ

۰
ارسال: #۱۰
  

shayesteb پاسخ داده:

RE: حل رابطه بازگشتی

سلام دوستان

واقعا ممنون از اینکه اینقدر خوب توضیح دادین Smile
نقل قول این ارسال در یک پاسخ



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  نظر در رابطه با استاد داور علیصا ۰ ۱,۷۴۴ ۱۴ مهر ۱۴۰۰ ۰۶:۰۵ ب.ظ
آخرین ارسال: علیصا
  درخواست(محاسبه پیچیدگی زمانی)(بخش روابط بازگشتی) 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?

به خاطر سپاری رمز Cancel

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close

رمزت رو فراموش کردی؟

Feeling left out?


نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. close