سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - نسخهی قابل چاپ |
سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - hap777 - 10 بهمن ۱۳۹۲ ۱۰:۲۹ ب.ظ
سلام دوستان سوال ۵۲ کامپیوتر ۸۶ رو چطور باید حل کرد؟ مرسی |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - mahsalove - 14 بهمن ۱۳۹۲ ۱۲:۳۳ ب.ظ
سلام این الگوریتم درخت را به صورت درجا به max-heap تبدیل می کنه که عملیات max-heapify درون حلقه repeat انجام می شود.اگر بخواهیم به طور فلسفی نگاه کنیم که یخورده سخت میشه ولی با توجه به اینکه این سوال تعداد دفعات اجرای حلقه repeat را خواسته یه کار خیلی خیلی ساده انجام بدید به دست می یاد: خود سوال گفته k=log n خوب شما بیایید برای n پایه مثلا ۲ این کارو انجام بدید و حلقه repeato ببینید چند بار تکرار می شه !که اگه توجه کنید حداکثر ۲ بار اجرا می شه! خوب حالا بیایید به جای k ها در جوابها همون چیزی که خود سوال داده بگذارید که log n و اینجا هم n=2 و تعداد تکرار هم ۲ شده! و اگر چک کنید فقط جواب ۴ که برابر ۴ می شود درست است و از تعداد تکرار ما که ۲ , (t)است بیشتر است. t<=2*2^log2-1+log2+1=2+1+1=4 ولی اگه برای بقیه بخواهیم حساب کنیم تعداد تکرار می شه منفی که تعداد تکرار هم نمی تونه منفی باشه!و برای همینم ج۴ رو تا همینجا به دست میاریم!و اگر برای پایه ج بده برای بقیشم ج می ده! موفق باشید..... |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - hap777 - 14 بهمن ۱۳۹۲ ۰۶:۵۲ ب.ظ
(۱۴ بهمن ۱۳۹۲ ۱۲:۳۳ ب.ظ)mahsalove نوشته شده توسط: سلام ممنون از توضیحاتتون فقط من نفهمیدم چطور بقیه جوابها منفی میشه چون اصلا علامت منفی نداریم؟؟؟ ( البته ریاضیات من یه خورده ... ) |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - mahsalove - 15 بهمن ۱۳۹۲ ۱۲:۲۸ ب.ظ
شما لطف کنید جایگزین کنید!:/بعد می فهمید چرا؟!:/ log 2=1 حالا گفته k-2 پس می شه log n که همون k با شه -۲ یعنی ۱-۲=-۱ دیگه آنقدر آدم ریاضیشم ضعیف باشه واسه امتحان ارشد خوب نیس! |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - hap777 - 16 بهمن ۱۳۹۲ ۱۱:۳۵ ق.ظ
الان من اینطوری حل می کنم و منفی در نمیاد ، کجاش دارم اشتباه می کنم؟ n=2 k=log n =1 ۲ <= 2*2^(1-2)+3*2^(1-3)+1 ۲ <= 2*2^(-1)+3*2^(-2)+1 ۲<= 2*(1/2)+3(1/4)+1 |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - mahsalove - 16 بهمن ۱۳۹۲ ۰۲:۰۴ ب.ظ
درسته به صورت کلی جواب تعداد تکرار برای همشون منفی نمی شه ولی منظورم از منفی شدن منفی شدن تعداد گره در هر سطح که ضربدر ۲ شده و توانش میشه منفی و غلط جواب به دست میاد! من یه جور دیگه این سوالو توضیح می دم اگر متوجه نشدید یا کتاب پارسه رو بخوانید یا دوستان دیگه کمک کنند! من تحلیل دیگم اینجوریه که تعداد تکرار repeat برای یک درخت بر حسب ارتفاعش زمانی Max می شه که درخت پر باشه و حداکثر تعداد گره رو در هر سطح داشته باشه!k رو وقتی log n داده یه جورایی با توجه به اندیس هایی که داده شده در داخل حلقه repeat بایستی متوجه بشید که داره به یه درخت اشاره می کنه و اون درخت با ارتفاع log n درخت پر است! در واقع در سطح آخر آن حداکثر ۲^k نود وجود دارد و همگی برگ هستند و حلقه repeat برای آْنها اجرا نمی شود.در سطح ما قبل آخر حداکثر ۲^k-1 نود وجود دارد که همگی لزوما داخلی نیستند و برای نودهای داخلی در این سطح حلقه repeat حداکثر ۲ بار اجرا می شود.در سطح ۲ ما قبل آخر ۲^k-2 بار اجرا می شود که برای هر یک حداکثر ۳ بار repeat اجرا می شودو به همین ترتیب. در واقع تعداد تکرار حلقه repeat برای هر گره داخلی i در سطح r ام برابر با ارتفاع زیر درخت مشتق شده از آن است. توضیح حلقه repeat: برای گره ما قبل آخر ۲ بار یکی فرزند بزرگتر پیدا شود و دوم اندیس j و k که تغییر کرده اند یا ثابت مانده اند.اگر ثابت شود که repeat تمام و اگر j نسبت به k تغییر کرده باشد دوباره حلقه تکرار پس برای ریشه k+1 یعنی به ارتفاع این عمل تکرار مشود.پس برای درخت پر برابر است با k=log n +1 پس اگه ما برای ۲ گره حساب کنیم می بینیم که تعداد حداکثر تکرار حلقه repeat عدد ۲ است که باید ضربدر تعداد گره در سطح خودش یعنی ۱ شود(یعنی ۲ بار اجرا شدن بستگی به تعداد گره در این سطح دارد.)حالا اگر توجه کنید فقط گزینه ۴ ج درست است!و در نهایت هم باید با تعداد تکرار حلقه repeat در سطح اول ریشه جمع شود که برای ریشه اگه توجه کنید نسبت به همون ۲ گره ,۲ بار این عملیات انجام می شود.(در واقع چون ۲ گره در نظر گرفتیم گره ریشه با همان گره که تعداد تکرارشو در اول حساب کردیم با هم برابر می شوند.) حالا اگر توجه کنید منظورمو از منفی متوجه میشید و ج شما هم ۲ خورده ای میشه!نه ۲!که حالا دیگه مهم نیست... موفق باشید..... |
RE: سوال ۵۲ کامپیوتر ۸۶ - رابطه بازگشتی تابع - hap777 - 16 بهمن ۱۳۹۲ ۰۹:۱۹ ب.ظ
الان متوجه شدم داستان چیه ، مرسی |