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

توروخدا این تمرین هارو حل کنید خیلی نیازد ارم تا جمعه بعد از ظهر

subtitle
ارسال:
  

konkuru پرسیده:

توروخدا این تمرین هارو حل کنید خیلی نیازد ارم تا جمعه بعد از ظهر

با سلام

به تمامی بچه های نرم افزار

این سری تمرینات دانشگاه داده برای حل تمرین سخته خداییش
اگه تونستید حل کنید جواباشو بدید ممنون تا جمعه بعد از ظهر نیاز دارم


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


منتظرتونم

۱
ارسال:
  

ایزدی پاسخ داده:

RE: توروخدا این تمرین هارو حل کنید خیلی نیازد ارم تا جمعه بعد از ظهر

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

###############################################

سوال ۱در واقع به یه زبون دیگه از شما K کمترین اعضای ارایه رو خواسته


می تونید اول ی ارایه کمکی بگیرید که دو بعدی باشه و هم حاوی مکان عدد ها در ارایه اولیه و حاوی داده ها باشه و مرتبش کنید (بر اساس سطری که مربوط به داده هاست ) بعدش k عضو اولش از روی سطر مکان ها رو به ترتیب چاپ کنینی یعنی ارایه کمکی اینه :
سطر ۱ : ۱۰ و ۴۰ و ۶۰ و ۵۰ و ۳۰
سط دوم : ۱ و ۲و ۳و ۴و ۵

بعد از مرتب سازی می شه :
سطر اول : ۱۰ و ۳۰ و ۴۰ و ۵۰ و ۶۰
سطر دوم : ۱ و ۵و ۲و ۴ و ۳


در واقع مرتبه n به توان ۲ می شه ولی سختیش استفاده از ارایه دو بعدی و استفاده از ارایه پویاست


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

یعنی داریم

۱۰ و۴۰ و ۶۰ و ۵۰ و ۳۰
وقتی یک بار حلقه عمل کرد عدد ۱۰ معرفی می شه و جایگاه یک
بعد از مشخص کردن توی خروجی میایم جای عدد ۱۰ مثلا می ذاریم ۱۰۰۰۰ که مطمین باشیم دیگه این عدد معرفی نیم شه


این الگوریتم مرتبه ش می شه n اما خوب برای k هایی ک مستقل از n باشن
دیدی که اصلا سخت نیست و جوابش عینا توی کتابتون هست
* راه حل دیگه اش استفاده از تورنومنت هست ک اگر ازش استفاده کنید شاید استادتون نمره اضافه هم بدهBig Grin

اگر متوجه حل شدید بریم مساله شماره ۲ ؟Wink

###############################################


مساله ۲ می خواد گروه بندی کنه

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


بعدش می خوایم گروه بندی کنیم
در قدم اول اولین عدد رو می ذاریم به عنوانresult
فرض کنیم عضو اول ارایه ۲ و بعدی ۱۰ هست خوب اگر ۲ برای خودش ی گروه باشه چنین چیزی ممکنه ؟ نه چون ۱۰ خودش هنوز با هیچ عددی جمع نشده از result بیشتره
پس چی کار کنیم ؟ اهان ! resut به جای ۲ عدد ۱۲ هست حالا می ریم سراغ عدد بعدی
اگر فرضا ۱۴ باشه چی؟ می فهمیم که باز هم توی انتخاب result عجله کردیم و باید مقدارش رو به ۲۶ تغغیر بدیم واسه همینه اون ارایه ۱و۲و۳و۴و۵و۶و۷و رو نوشته فقط یک گروه داریم !

حالا اگر عدد سوم کمتر بود چی ؟ مثلا ۷ پس حدس می زنیم که result درست انتخاب شده و می ریم سراغ عدد بعد از ۷ و اونو با ۷ جمع می کنیم اگر جواب بیشتر از result شد یعنی بازم عجله کردیم و result 12 نبوده پس چی بوده ؟ قاعدتا ۱۲+۷ بوده
فرضا داریم :
۲و۱۰و۷و۸و ...
حاصل ۷+۸ شده ۱۵ که از ۱۲ بیشتره پس result می شه ۲+۱۰+۷ و باید بررسی رو از ۸ ادامه بدیم

فرض کنید بعد از ۷ داده ۵ رو داشته باشیم یعنی :
۲و۱۰و۷و۵و...
یعنی مقدار ۷+۵ دقیقا برابر result می شه این نتیجه ای هست که به نفع ۱۲ بودن مقدار result هست

اگر به جای ۸ داشتیم ۲ چی ؟ یعنی :
۲و۱۰و۷و۲
حالا result هست ۱۲ و مقدار ۲+۷ هست ۹ چیزی بر علیه ۱۲ بودن result پیدا نکردیم و باید عدد بعد از ۲ رو بررسی کنیم


امیدوارم این مثال رو فقط نخونین بلکه روی کاغذ بنویسید و استدلال کنید چون اگر این کار رو نکنید نمی فهمید چه اتفاقی افتاده هاااااا Huh

اگر فهمیدین الگوریتمی که پیشنهاد دادم رو بنویسید (نمی خوام لقمه حاضری تحویلتون بدم چون تنها سوالی که ارزش حل داره از بین این چهار تا همینه فقطAngel)

راهنمایی : این الگوریتم حد اقل از مرتبه n به توان ۲ هست

مساله سوم به سادگی مساله اوله و حتی باید بگم ساده تر از اون
قابل فهم ترین راه حلی ک می تونم پیشنهاد بدم یه الگوریتمه که از لحاظ حافظه و زمان از مرتبه n به توان ۲ هست

اولین کار اینه که فاصله ها رو برای هر خونه حساب کنیم
به عنوان مثال نمونه خود تمرین رو در نظر بگیرید
۳و۲و۴و۶
یک ارایه کمکی می خوایم که فاصله خانه شماره ۱ رو از بقیه خونه ها توش ذخیره کنیم Smile
فاصله ها با تفریق به دست میان
پس داریم ۰و۱و۱و۳
حالا برای بقیه خونه ها چطوری می شه ؟
خانه ی شماره ۱: ۰و۱و۱و۳
خانه شماره ۲ : ۱و۰و۲و۴
خانه شماره ۱:۳و۲و۰و۲
خانه شماره ۴: ۳و۴و۲و۰

یعنی الان من ۴ تا ارایه کمکی دارم که هر کدوم ۴ تا خونه دارن
یعنی من باید یک ارایه پویا بگیرم به اندازه n به توان ۲ که مقدار n رو هم باید داشته باشیم (موقع دریافت ورودی بخواهیدش از کاربر)


خوب حالا من اختلاف های هر خونه رو از بقیه خونه ها دارم از اونجایی که اختلاف مصافت هر خونه با خودش ۰ هست و از اونجایی ک صورت مساله هم اشاره کرده که اختلاف با خانه های دیگر کم ترین باشد شما می تونید یک راه برای تصمیم گیری کم بودن اختلاف در نظر بگیرید

درس امار یادتون هست ؟ میانگین ، اختلاف پراکندگی و واریانس همه می تونن راه حل این مساله باشن!!!

می تونید میانگین مسافت ها رو در نظر بگیرید و بگید هر کدوم میانگین کمتری داشت پس اون نزدیک تره میانگین فواصل رو از روی ارایه کمکی با کمک جمع همه فاصله ها و تقسیم بر تعداد به دست بیارید
برای خانه اول می شه ۱/۲۵ برای خانه شماره ۲ می شه ۱/۷۵ برای خانه شماره ۳ می شه ۱/۲۵ و برای خانه شماره ۴ می شه ۲/۲۵

اما اگر دو تا باهم مساوی در اومدن چی؟ الان برای خانه ۱ و خانه ۳ هر دو مقدار ۱/۲۵ به دست اومده !
کلا از هر راه استفاده کنین می تونه این تساوی وجود داشته باشه پس یک راه حل دوم هم می تونید در نظر بگیریم اون چی باشه ؟ با توجه به سادگی پیاده سازی اختلاف پراکندگی رو پیشنهاد می دم

بین دو تا خانه ای که توی مقایسه اول بهترین نتیجه رو کسب کردن یعنی خانه شماره ۱ و ۳ یک مسابقه دیگه ترتیب می دیم

می ریم توی ارایه های کمکی شون و می بینیم که بیشترین مسافت برای هر خانه چی هست ؟
برای خانه شماره ۱ بیشترین مسافت ۳ و باری خانه شماره ۳ بیشترین مسافت ۲ هست پس توی مقایسه بعدی خانه شماره ۳ برنده می شه که همون result= 4 می شه
Smile


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

پیاده سازی واریانس رو پیشنهاد نکردم چون پیچیده می شد و خودمم حس توضیحش رو نداشتم ولی اگر دستتون اومد چ باید بکنید از واریانس استفاده کنین چون از لحاظ قدرت اماری بهتر از این دو راه هست SmileBig Grin


امیدوارم الگوریتم دستتون اومده باشه Smile


########################################################



مساله ۴ هم ک اگر منظور از به دست اوردن عدد این باشه که جمع اعداد اول بشه یه عدد اول دیگه که اخر سادگیه

می گه شما عدد های اول رو ردیف کنین توی ارایه : ۲و ۳و ۵و۷و۱۱و۱۷و۱۹و ...
از اول شروع کنین به جمع زدن بعد از هر جمع ببینید حاصل جمع عدد اول هست ؟
یعنی ۲+۳ که می شه ۵
یا ۲+۳+۵+۷ که می شه ۱۷
ولی باید دقت کنین مثلا ۲رو نمی شه با ۵ جمع کنین بگید افرین ۷ پیدا شد چرا ؟ چون ۲ و ۵ اول متوالی نیستن


برای اینکه وقتی یه حاصل جمع رو می خواید ببینید اول هست یا نه بیخودی کد ننویسین واسش چه می کنین ؟
اگر که ارایه اعداد اول رو با فرمول پر کردین که همون کد رو کپی می کنین اما اگر از حفظ پرکردین می تونین توی ارایه سرچ بزنین مثلا وقتی ۲+۳+۵ رو که می شه ۸ جمع زدید برید توی ارایه اعداد اول بگرید ببینید ۸ هست یا نه ؟ شرط پایان جستجو هم رسیدن به عدد اولیه که از ۸ بزرگتره یعنی وقتی توی جستجو به ۱۱ رسیدید مطمینید که ۸ اول نیست Big Grin
( توی ماشین حساب ها یه سری داده ها از قبل ذخیره شدن که من خودم این از قبل ذخیره کردن رو خیلی دوست دارم)

امیدوارم تا اخر مهلت بتونین کد ها رو هم پیاده سازی کنین Heart

۱
ارسال:
  

Fardad-A پاسخ داده:

RE: توروخدا این تمرین هارو حل کنید خیلی نیازد ارم تا جمعه بعد از ظهر

دوست گرامی اینجا سایت حل المسائل یا حل تمرینات کلاسی افراد نیست.
هر سوال باید در یک تاپیک مطرح شود موضوع بسته میشود.

۰
ارسال:
  

konkuru پاسخ داده:

RE: توروخدا این تمرین هارو حل کنید خیلی نیازد ارم تا جمعه بعد از ظهر

چی شد پس توروخدا لازم دارم بخدااااااااااااااااااااااااااا



موضوع‌های مرتبط با این موضوع...
موضوع: نویسنده پاسخ: بازدید: آخرین ارسال
  بهترین سایتی که در زمینه خدمات اینستاگرام می شناسید معرفی کنید aynazma ۰ ۱۰۶ ۲۷ شهریور ۱۴۰۳ ۱۲:۳۹ ب.ظ
آخرین ارسال: aynazma
  کمک در باره این تروجان Ghasemiyeh ۲ ۳,۰۴۲ ۲۵ آذر ۱۴۰۰ ۰۳:۰۰ ق.ظ
آخرین ارسال: one hacker alone
  حل تمرین کتاب سیستم های فازی و کنترل فازی neo.st ۲۳ ۴۱,۱۴۷ ۳۰ فروردین ۱۴۰۰ ۰۹:۳۵ ق.ظ
آخرین ارسال: mahdiyehbakhshi
  حل تمرین شدن و مصاحبه دکتری siiib70 ۱ ۳,۵۵۹ ۱۷ بهمن ۱۳۹۹ ۱۱:۳۲ ب.ظ
آخرین ارسال: hmaryam567
  کمک برای حل تمرین پایگاه داده zhila1994 ۰ ۲,۱۴۹ ۲۲ آذر ۱۳۹۹ ۰۱:۲۵ ب.ظ
آخرین ارسال: zhila1994
  بعد ۶ سال اومدم، ارشد مهندسی کامپیوتر کسی هست؟؟ seyed_eng ۷ ۶,۵۶۶ ۱۱ آبان ۱۳۹۹ ۰۷:۴۷ ق.ظ
آخرین ارسال: iraj.leo
  چگونه این خطا را موقع اجرای sql server 2014 رفع کنم ؟ farahnaz ۲ ۳,۰۴۷ ۱۹ مهر ۱۳۹۹ ۰۲:۱۸ ق.ظ
آخرین ارسال: farahnaz
  سن واقعی بدن خود را حساب کنید fahimehazimi ۷۱ ۳۹,۵۸۶ ۲۰ مرداد ۱۳۹۹ ۰۴:۱۰ ب.ظ
آخرین ارسال: gerdoo_456
  [دانلود] کتاب clrs همراه با حل تمرین و پیوست فارسی mehrdad66 ۳۸ ۸۶,۸۷۹ ۲۴ خرداد ۱۳۹۹ ۰۴:۲۲ ب.ظ
آخرین ارسال: Nargeshassani
  ۱۲ کد شگفت‌انگیز موبایل خود را کشف کنید elecomco ۰ ۲,۶۴۳ ۰۴ خرداد ۱۳۹۹ ۰۸:۳۵ ب.ظ
آخرین ارسال: elecomco

پرش به انجمن:

Can I see some ID?

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

Feeling left out?


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

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

Feeling left out?


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