۰
subtitle
ارسال: #۱
  
علوم کامپیوتر - سراسری ۹۰
با عرض سلام
دوستان یه راهنمایی در مورد سوال زیر می فرمایید لطفا ؟
با سپاس و قدر دانی
دوستان یه راهنمایی در مورد سوال زیر می فرمایید لطفا ؟
با سپاس و قدر دانی
۰
ارسال: #۲
  
RE: علوم کامپیوتر - سراسری ۹۰
سلام
n عدد صحیح داریم ولی ۱۵ عدد متمایز از ۱ تا ۱۵ که این n عدد به صورت مرتب شده هستند(مثلا یک ارایه مرتب)
سوال گفته به کمک جستجویی دودویی ابتدا و انتهای تکرار عدد ۸ را پیدا می کنیم یعنی محل اولین و اخرین رخداد عدد ۸ که این کار به این صورت انجام می شود مثلا یکبار[tex]7.9[/tex] را جستجو میکنیم که جستجو بین اولین رخداد ۸ و اخرین رخداد ۷ متوقف می شود ویکبار هم [tex]8.1[/tex] را جستجو می کنیم تا محل اخرین عدد ۸ را بیابیم توجه شود که n عدد صحیح است و ارایه هم مرتب. پس با دو مقایسه محل اولین و اخرین رخداد عدد ۸ را پیدا کردیم(کار با اندیس ها) با انجام یک تفاضل ساده روی اندیس محل های پیدا شده تعداد تکرار عدد ۸ بدست می اید حالا همین کار را برای عدد ۴ در بازه قبل از محل اولین رخداد ۸ تا ابتدای ارایه انجام می دهیم و همچنین عدد ۱۲ در بازه راستی در واقع برای یافتن تعداد تکرار هر عدد در بدترین حالت ۲ بار جستجویی دودویی را انجام میدهیم ۱۵ عدد داشتیم پس در بدترین حالت ۳۰ بار البته احتمالا می توانیم با هر بار جستجو دو محل برای دو عدد پیدا کنیم ولی خوب زیاد تاثیری روی مرتبه ندارد و باز تعداد تکرار ثابت است پس هزینه کلی این الگوریتم همان هزینه جستجو یعنی [tex]O(\lg n)[/tex] است گزینه ۲
n عدد صحیح داریم ولی ۱۵ عدد متمایز از ۱ تا ۱۵ که این n عدد به صورت مرتب شده هستند(مثلا یک ارایه مرتب)
سوال گفته به کمک جستجویی دودویی ابتدا و انتهای تکرار عدد ۸ را پیدا می کنیم یعنی محل اولین و اخرین رخداد عدد ۸ که این کار به این صورت انجام می شود مثلا یکبار[tex]7.9[/tex] را جستجو میکنیم که جستجو بین اولین رخداد ۸ و اخرین رخداد ۷ متوقف می شود ویکبار هم [tex]8.1[/tex] را جستجو می کنیم تا محل اخرین عدد ۸ را بیابیم توجه شود که n عدد صحیح است و ارایه هم مرتب. پس با دو مقایسه محل اولین و اخرین رخداد عدد ۸ را پیدا کردیم(کار با اندیس ها) با انجام یک تفاضل ساده روی اندیس محل های پیدا شده تعداد تکرار عدد ۸ بدست می اید حالا همین کار را برای عدد ۴ در بازه قبل از محل اولین رخداد ۸ تا ابتدای ارایه انجام می دهیم و همچنین عدد ۱۲ در بازه راستی در واقع برای یافتن تعداد تکرار هر عدد در بدترین حالت ۲ بار جستجویی دودویی را انجام میدهیم ۱۵ عدد داشتیم پس در بدترین حالت ۳۰ بار البته احتمالا می توانیم با هر بار جستجو دو محل برای دو عدد پیدا کنیم ولی خوب زیاد تاثیری روی مرتبه ندارد و باز تعداد تکرار ثابت است پس هزینه کلی این الگوریتم همان هزینه جستجو یعنی [tex]O(\lg n)[/tex] است گزینه ۲
ارسال: #۳
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۱:۰۳ ق.ظ)msour44 نوشته شده توسط: سلام
n عدد صحیح داریم ولی ۱۵ عدد متمایز از ۱ تا ۱۵ که این n عدد به صورت مرتب شده هستند(مثلا یک ارایه مرتب)
سوال گفته به کمک جستجویی دودویی ابتدا و انتهای تکرار عدد ۸ را پیدا می کنیم یعنی محل اولین و اخرین رخداد عدد ۸ که این کار به این صورت انجام می شود مثلا یکبار[tex]7.9[/tex] را جستجو میکنیم که جستجو بین اولین رخداد ۸ و اخرین رخداد ۷ متوقف می شود ویکبار هم [tex]8.1[/tex] را جستجو می کنیم تا محل اخرین عدد ۸ را بیابیم توجه شود که n عدد صحیح است و ارایه هم مرتب. پس با دو مقایسه محل اولین و اخرین رخداد عدد ۸ را پیدا کردیم(کار با اندیس ها) با انجام یک تفاضل ساده روی اندیس محل های پیدا شده تعداد تکرار عدد ۸ بدست می اید حالا همین کار را برای عدد ۴ در بازه قبل از محل اولین رخداد ۸ تا ابتدای ارایه انجام می دهیم و همچنین عدد ۱۲ در بازه راستی در واقع برای یافتن تعداد تکرار هر عدد در بدترین حالت ۲ بار جستجویی دودویی را انجام میدهیم ۱۵ عدد داشتیم پس در بدترین حالت ۳۰ بار البته احتمالا می توانیم با هر بار جستجو دو محل برای دو عدد پیدا کنیم ولی خوب زیاد تاثیری روی مرتبه ندارد و باز تعداد تکرار ثابت است پس هزینه کلی این الگوریتم همان هزینه جستجو یعنی [tex]O(\lg n)[/tex] است گزینه ۲
دوست عزیز
خیلی لطف کردید، مثل همیشه کامل و جامع
موفق و پیروز باشید انشاالله
(۳۰ فروردین ۱۳۹۶ ۱۲:۲۴ ق.ظ)*tarannom* نوشته شده توسط:(29 فروردین ۱۳۹۶ ۰۷:۵۴ ب.ظ)alimamala نوشته شده توسط: با عرض سلام
دوستان یه راهنمایی در مورد سوال زیر می فرمایید لطفا ؟
با سپاس و قدر دانی
اگه میشه پاسخشو بذارید....
این پاسخ کتاب هست دوست من، ولی فکر نمی کنم با توضیحات دوستمون نیازی بهش باشه
ارسال: #۴
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۱:۰۳ ق.ظ)msour44 نوشته شده توسط: سلام
n عدد صحیح داریم ولی ۱۵ عدد متمایز از ۱ تا ۱۵ که این n عدد به صورت مرتب شده هستند(مثلا یک ارایه مرتب)
سوال گفته به کمک جستجویی دودویی ابتدا و انتهای تکرار عدد ۸ را پیدا می کنیم یعنی محل اولین و اخرین رخداد عدد ۸ که این کار به این صورت انجام می شود مثلا یکبار[tex]7.9[/tex] را جستجو میکنیم که جستجو بین اولین رخداد ۸ و اخرین رخداد ۷ متوقف می شود ویکبار هم [tex]8.1[/tex] را جستجو می کنیم تا محل اخرین عدد ۸ را بیابیم توجه شود که n عدد صحیح است و ارایه هم مرتب. پس با دو مقایسه محل اولین و اخرین رخداد عدد ۸ را پیدا کردیم(کار با اندیس ها) با انجام یک تفاضل ساده روی اندیس محل های پیدا شده تعداد تکرار عدد ۸ بدست می اید حالا همین کار را برای عدد ۴ در بازه قبل از محل اولین رخداد ۸ تا ابتدای ارایه انجام می دهیم و همچنین عدد ۱۲ در بازه راستی در واقع برای یافتن تعداد تکرار هر عدد در بدترین حالت ۲ بار جستجویی دودویی را انجام میدهیم ۱۵ عدد داشتیم پس در بدترین حالت ۳۰ بار البته احتمالا می توانیم با هر بار جستجو دو محل برای دو عدد پیدا کنیم ولی خوب زیاد تاثیری روی مرتبه ندارد و باز تعداد تکرار ثابت است پس هزینه کلی این الگوریتم همان هزینه جستجو یعنی [tex]O(\lg n)[/tex] است گزینه ۲
اگه میشه رابطه بازگشتیشم بگید رو اونم یه توضیح مختصری بدید.....ممنون...
ارسال: #۵
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۹:۳۶ ق.ظ)*tarannom* نوشته شده توسط:به نظر میرسیه رابطه بازگشتی دو پارامتری نیاز داریم یک n همان تعداد عدد صحیح و دیگری بازه ۱ تا ۱۵ همان محدوده اعداد متمایز پس برای این سوال رابطه بازگشتی می تونه به شکل زیر باشه(30 فروردین ۱۳۹۶ ۰۱:۰۳ ق.ظ)msour44 نوشته شده توسط: سلام
n عدد صحیح داریم ولی ۱۵ عدد متمایز از ۱ تا ۱۵ که این n عدد به صورت مرتب شده هستند(مثلا یک ارایه مرتب)
سوال گفته به کمک جستجویی دودویی ابتدا و انتهای تکرار عدد ۸ را پیدا می کنیم یعنی محل اولین و اخرین رخداد عدد ۸ که این کار به این صورت انجام می شود مثلا یکبار[tex]7.9[/tex] را جستجو میکنیم که جستجو بین اولین رخداد ۸ و اخرین رخداد ۷ متوقف می شود ویکبار هم [tex]8.1[/tex] را جستجو می کنیم تا محل اخرین عدد ۸ را بیابیم توجه شود که n عدد صحیح است و ارایه هم مرتب. پس با دو مقایسه محل اولین و اخرین رخداد عدد ۸ را پیدا کردیم(کار با اندیس ها) با انجام یک تفاضل ساده روی اندیس محل های پیدا شده تعداد تکرار عدد ۸ بدست می اید حالا همین کار را برای عدد ۴ در بازه قبل از محل اولین رخداد ۸ تا ابتدای ارایه انجام می دهیم و همچنین عدد ۱۲ در بازه راستی در واقع برای یافتن تعداد تکرار هر عدد در بدترین حالت ۲ بار جستجویی دودویی را انجام میدهیم ۱۵ عدد داشتیم پس در بدترین حالت ۳۰ بار البته احتمالا می توانیم با هر بار جستجو دو محل برای دو عدد پیدا کنیم ولی خوب زیاد تاثیری روی مرتبه ندارد و باز تعداد تکرار ثابت است پس هزینه کلی این الگوریتم همان هزینه جستجو یعنی [tex]O(\lg n)[/tex] است گزینه ۲
اگه میشه رابطه بازگشتیشم بگید رو اونم یه توضیح مختصری بدید.....ممنون...
[tex]T(n,[1..15])=T(n_1,[1..7])+T(n_2,[9..15])+O(\lg n)[/tex]
که [tex]n_1[/tex] تعداد اعداد صحیح بازه چپی و دیگری هم راستی است که بستگی به تعداد عدد مورد جستجو در هر مرحله دارد(بازه ها هم تغییر می کنند می توانیم از میانگین هر بار استفاده کنیم). مثلا در همان گام اول در بهترین حالت تعداد عدد ۸ برابر n-14 است و سایر اعداد هر کدام فقط یک بار تکرار شده اند پس داریم
[tex]T(n,[1..15])=T(7,[1..7])+T(7,[9..15])+O(\lg n)=O(1)+O(1)+O(\lg n)=O(\lg n)[/tex]
که [tex]T(7,[1..7])[/tex] یعنی ۷ تا عدد داریم که اعداد متمایز از ۱ تا ۷ است و چون هر عدد یکبار جداقل طبق سوال تکرار شده پس تعداد تکرار هر عدد برابر یک است و نیاز به محاسبه ندارد در واقع نوعی شرط پایان بازگشتی است.البته در حالت های دیگر هم با توجه به ثابت بودن تعداد اعداد متمایز زیاد بر تعداد تکرار روابط اضافه نمی شود ولی اگر محدوده اعداد متمایز ثابت نباشد مثلا[tex][1..\sqrt{n}][/tex] موضوع کمی پیچیده می شودو در این مورد باید حالت های مختلف بررسی و میانگین گیری انجام داده تا به نتیجه برسیم که مثل بعضی از نویسندگان کتاب ها که هر وقت موضوع پیچیده میشه میگن بدلیل پیچیدگی زیاد از گفتن ان صرف نظر می شود ویا به عنوان تمرین به دانشجو واگذار می شود.اینجا هم این موضوع به عنوان تمرین به شما دوست گرامی واگذار می شود تا شما باشین دیگه ازاین سوالات نپرسین.(البته باسه بعد ارشد)
البته ممکن است رابطه بهتری وجود داشته باشد به هر حال این رابطه در یک بررسی اولیه حاصل شد
ارسال: #۶
  
RE: علوم کامپیوتر - سراسری ۹۰
حاج اقا مرسی واقعا خیلی خوب میگید
یه سوال! با توجه به اینکه تو سوال گفته ارایه رو دو قسمت میکنیم و با تقسیم غلبه میریم :چه وقت باز گشتیو براساس (T(n/2 مینویسیم اینجا؟! اگه بازه ی اعداد صحیحو به ما نداده بود؟ یا اگه نگفته بود اعداد مرتبن؟
نمیدونم منظورمو متوجه میشید یا نه؟میخوام بگم چه زمای با دوتا ( T(n/2 به اضافه ی log n بازگشت میریم که مرتبه بشه تتای n؟
الان تو این رابطه که گفتید چون یه بازه ی مشخص داریم مرتبه ی هر بازگشتی شد تتای ۱؟
یه سوال! با توجه به اینکه تو سوال گفته ارایه رو دو قسمت میکنیم و با تقسیم غلبه میریم :چه وقت باز گشتیو براساس (T(n/2 مینویسیم اینجا؟! اگه بازه ی اعداد صحیحو به ما نداده بود؟ یا اگه نگفته بود اعداد مرتبن؟
نمیدونم منظورمو متوجه میشید یا نه؟میخوام بگم چه زمای با دوتا ( T(n/2 به اضافه ی log n بازگشت میریم که مرتبه بشه تتای n؟
الان تو این رابطه که گفتید چون یه بازه ی مشخص داریم مرتبه ی هر بازگشتی شد تتای ۱؟
ارسال: #۷
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۲:۱۱ ب.ظ)*tarannom* نوشته شده توسط: حاج اقا مرسی واقعا خیلی خوب میگیداول دقت کنید که بازگشتی ما دو پارامتری است پارامتر اول تعداد کل اعداد و پارامتر دوم مشخص کننده اعداد متمایز
یه سوال! با توجه به اینکه تو سوال گفته ارایه رو دو قسمت میکنیم و با تقسیم غلبه میریم :چه وقت باز گشتیو براساس (T(n/2 مینویسیم اینجا؟! اگه بازه ی اعداد صحیحو به ما نداده بود؟ یا اگه نگفته بود اعداد مرتبن؟
نمیدونم منظورمو متوجه میشید یا نه؟میخوام بگم چه زمای با دوتا ( T(n/2 به اضافه ی log n بازگشت میریم که مرتبه بشه تتای n؟
الان تو این رابطه که گفتید چون یه بازه ی مشخص داریم مرتبه ی هر بازگشتی شد تتای ۱؟
اینکه چه زمانی دوتا رابطه با n/2 به اضافه lgn داریم که مرتبش بشه تتای n ? با توجه به شیوه مطرح شده در سوال چنین چیزی اتفاق نمی افتد همان طوری که محاسبه کردیم مر تبه در بدترین حالت lgn میشه ولی ممکن است الگوریتم دیگری مطرح بود در سوال که باعث ایجاد چنین وضعیتی بشود.
اینکه چون بازه مشخصی داریم مرتبه هر بازگشتی شد تتای ۱// دقت کنید بازه مشخص نه چون بازه ثابت است میشه تتای ۱ یعنی تعداد تکرار در رابطه بازگشتی کمه یه به عبارتی ارتفاع درخت بازگشتی کمه. گفتیم که هزینه در بدترین حالت رو می توانیم ۳۲ تا lgn بگیریم.
فرض کنید تعداد تکرار عدد ۸ یک باشه پس در چپ و راست ۸ تقریبا n/2 باقی می ماند ولی باید به دو پارامتری بودن دقت کردو حالت های مختلف را جداگانه محاسبه کرد و مرتبه میانگین را بدست اورد.
رابطه بازگشتی مرتب سازی سریع را بیاد اورید[tex]T(n)=T(k)+T(n-k-1)+n-1[/tex] برای یافتن حالت میانگین به k مقادیر مختلف می دادیم در این سوال هم تعداد تکرار در هر گام روی تعداد باقی مانده محدود چپ و راست مرحله بعدی تاثیر گذار است.
اینکه اعداد مرتب نباشند انوقت دیگر نمی توانیم از مرتب سازی دودویی استفاده کنیم در واقع شرایط مطرح شده در تست برقرار نیست در این حالت می توانیم از ایده مرتب سازی شمارشی برابر شمارش تعداد اعداد استفاده کنیم که البته مرتبه n میشه و اینکه بازه نداشته باشم هم احتمالا باعث افزایش مرتبه می شود ولی ممکن است روشی با مرتبه n هم باشه (با استفاده از درهم سازی) البته نیاز به بررسی بیشتر دارد.
نمی دونم منطورمو می تونم برسونم یا نه .
یک ارایه در نظر بگیرد میدونیم که با داشتن یک اندیس به راحتی به مقدار ذخیره شده در ان میتوان دست یاقت حالا الگوریتمی داریم که حداکثر به ۳۲
مقدار ذخیره شده در این ارایه n نیاز دارد هزینه دستیا بی هم ثابت است و لی هزینه یافتن اندیس ها log n حالا الگوریتم ما هر تابع بازگشتی با پارامتر های مختلف(مقادیر مختلف n) را صدا کند در کل چون بیشتر از ۳۲ بار با هزینه log اجرا نمیشه پس مرتبه logn میشه. بیشتر بحث روی بازه ی غیر ثابت بود (که قرار بود شما تحقیق کنید که با طرح سوال جدید توپ انداختین تو زمین من. از بس طولانی شد یادم رفت اولش چی گفتم. ممکنه ضریب اشتباه بره بالا)
ارسال: #۸
  
RE: علوم کامپیوتر - سراسری ۹۰
آخراش دیگه سرگیجه گرفتم
میگم فرقی داشت اگه نمیگفت مثلا از ۸ شروع کنید؟! میومدیم واسه عدد ۱ تا ۱۵ دودویی جستجو میکردیم.اونوقت چی؟
فکر کنم اگه دم دست بودم زندم نمیذاشتید
میگم فرقی داشت اگه نمیگفت مثلا از ۸ شروع کنید؟! میومدیم واسه عدد ۱ تا ۱۵ دودویی جستجو میکردیم.اونوقت چی؟
فکر کنم اگه دم دست بودم زندم نمیذاشتید
ارسال: #۹
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۴:۵۹ ب.ظ)*tarannom* نوشته شده توسط: آخراش دیگه سرگیجه گرفتمخواهش می کنم دوست گرامی
میگم فرقی داشت اگه نمیگفت مثلا از ۸ شروع کنید؟! میومدیم واسه عدد ۱ تا ۱۵ دودویی جستجو میکردیم.اونوقت چی؟
فکر کنم اگه دم دست بودم زندم نمیذاشتید
اگر خوب موضوع را درک نکردید دلیلش توضیحات بد و دانش ناچیز منه و مطمئنا خالی از اشکال نیست.
برای ۱ تا ۱۵ نه زیاد فرقی نمیکنه مثلا اگر به ترتیب ۱ تا ۱۵ رو تعداد تکرارشو پیدا کنیم تو همون رابطه بازگشتی مقدار [tex]n_1[/tex] صفر می شود و مقدار [tex]n_2[/tex] بستگی به تعداد عدد جستجو در گام قبلی دارد. و روی مرتبه تاثیری ندارد ولی اگر بجای ۱۵ مقدار [tex]\sqrt{n}[/tex] یا [tex]\log n[/tex] بوداین روش تقسیم و غلبه کارایی را نسبت به ترتیب های دیگر افزایش میداد حداقل تو ضریب. ویا اگر عدد بزرگی بود این روش با توجه به پارامتر دوم (بازه) شرط پایان بهتری داشت مثل [tex]T(7,[1..7])[/tex] که نیاز به محاسبه نداشت و مشخص بود تعداد تکرار هر عدد از ۱ تا ۷ برابر یک است در واقع طراح با توجه به وقت کنکور مسئله رو با ثابت کردن تعداد اعداد متمایز ساده کرده و هدف درک استفاده از جستجویی دودویی در یافتن تعداد تکرار اعداد است.
ارسال: #۱۰
  
RE: علوم کامپیوتر - سراسری ۹۰
(۳۰ فروردین ۱۳۹۶ ۰۷:۲۰ ب.ظ)msour44 نوشته شده توسط:خیلیییییی مرسیییییی(30 فروردین ۱۳۹۶ ۰۴:۵۹ ب.ظ)*tarannom* نوشته شده توسط: آخراش دیگه سرگیجه گرفتمخواهش می کنم دوست گرامی
میگم فرقی داشت اگه نمیگفت مثلا از ۸ شروع کنید؟! میومدیم واسه عدد ۱ تا ۱۵ دودویی جستجو میکردیم.اونوقت چی؟
فکر کنم اگه دم دست بودم زندم نمیذاشتید
اگر خوب موضوع را درک نکردید دلیلش توضیحات بد و دانش ناچیز منه و مطمئنا خالی از اشکال نیست.
برای ۱ تا ۱۵ نه زیاد فرقی نمیکنه مثلا اگر به ترتیب ۱ تا ۱۵ رو تعداد تکرارشو پیدا کنیم تو همون رابطه بازگشتی مقدار [tex]n_1[/tex] صفر می شود و مقدار [tex]n_2[/tex] بستگی به تعداد عدد جستجو در گام قبلی دارد. و روی مرتبه تاثیری ندارد ولی اگر بجای ۱۵ مقدار [tex]\sqrt{n}[/tex] یا [tex]\log n[/tex] بوداین روش تقسیم و غلبه کارایی را نسبت به ترتیب های دیگر افزایش میداد حداقل تو ضریب. ویا اگر عدد بزرگی بود این روش با توجه به پارامتر دوم (بازه) شرط پایان بهتری داشت مثل [tex]T(7,[1..7])[/tex] که نیاز به محاسبه نداشت و مشخص بود تعداد تکرار هر عدد از ۱ تا ۷ برابر یک است در واقع طراح با توجه به وقت کنکور مسئله رو با ثابت کردن تعداد اعداد متمایز ساده کرده و هدف درک استفاده از جستجویی دودویی در یافتن تعداد تکرار اعداد است.
۰
ارسال: #۱۱
  
RE: علوم کامپیوتر - سراسری ۹۰
۰
ارسال: #۱۲
  
RE: علوم کامپیوتر - سراسری ۹۰
گزینشو بذارید کافیه نمیخواد عکس بگیرید همونوقت میخوام ببینم راه حلم درسته یا نه.
ارسال: #۱۳
  
RE: علوم کامپیوتر - سراسری ۹۰
Can I see some ID?
Feeling left out?
نگران نباش، فقط روی این لینک برای ثبت نام کلیک کن. رمزت رو فراموش کردی؟ اینجا به یادت میاریم! close