برنامه ماز

وضعیت
موضوع بسته شده است.
  • شروع کننده موضوع
  • #1

Maryam91

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

شما چه راه هایی به ذهنتون می رسه؟ :-w
 

sajadjalali

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
شهید علی اکبر ا‌ژه ای
شهر
اصفهان
مدال المپیاد
کامپیوتر
رشته دانشگاه
ان شاالله نرم افزار
پاسخ : برنامه ماز

اگه فقط پایین و سمت راست بتونه بره که راحته حالا چه جوریه؟
 

armita

کاربر خاک‌انجمن‌خورده
ارسال‌ها
2,204
امتیاز
686
نام مرکز سمپاد
دبیرستان فرزانگان ۱
شهر
تهران
دانشگاه
شریف
رشته دانشگاه
‫علوم کامپیوتر‬‎
پاسخ : برنامه ماز

اگر با گراف آشنایی دارین ، یک گراف بسازین و روش BFS بزنید به جواب می رسین !
اگر خواستین بگین بیشتر توضیح بدم !
 
  • شروع کننده موضوع
  • #4

Maryam91

کاربر نیمه‌فعال
ارسال‌ها
12
امتیاز
0
نام مرکز سمپاد
فرزانگان
پاسخ : برنامه ماز

sghl
به نقل از آرمیتا ثابتی اشرف :
اگر با گراف آشنایی دارین ، یک گراف بسازین و روش BFS بزنید به جواب می رسین !
اگر خواستین بگین بیشتر توضیح بدم !
سلام
بله ، ممنون میشم.
 
  • شروع کننده موضوع
  • #5

Maryam91

کاربر نیمه‌فعال
ارسال‌ها
12
امتیاز
0
نام مرکز سمپاد
فرزانگان
پاسخ : برنامه ماز

به نقل از sajadjalali :
اگه فقط پایین و سمت راست بتونه بره که راحته حالا چه جوریه؟

سلام
ببخشید ، منظورتون رو از این که فقط بتونه پایین و راست بره متوجه نمی شم.
 

armita

کاربر خاک‌انجمن‌خورده
ارسال‌ها
2,204
امتیاز
686
نام مرکز سمپاد
دبیرستان فرزانگان ۱
شهر
تهران
دانشگاه
شریف
رشته دانشگاه
‫علوم کامپیوتر‬‎
پاسخ : برنامه ماز

یک گراف بسازین
به ازای هر خونه ی جدول یک راس بذارین و اگر دو خونه با هم همسایه اند و 1 نیستند بینشون یک یال بکشید .
بعد روش به این صورت BFS بزنید :
خونه ای که الان توش هستین رو در نظر بگیرین ، و تمام همسایه هاش رو در یک صف ذخیره کنید .
از اول صف شروع کنید و خونه ای که توش هستید اگر خونه ی پایانی نبود همسایه های غیر تکراریشو رو به ته صف اضافه کنید و خود اون خونه رو از صف حذف کنید .

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

sajadjalali

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
شهید علی اکبر ا‌ژه ای
شهر
اصفهان
مدال المپیاد
کامپیوتر
رشته دانشگاه
ان شاالله نرم افزار
پاسخ : برنامه ماز

به نقل از Programmer19 :
سلام
ببخشید ، منظورتون رو از این که فقط بتونه پایین و راست بره متوجه نمی شم.
میخواین ولش کنین من تو ذهنم این بود که تعداد راه ها را می خواهید بشمارید
 
  • شروع کننده موضوع
  • #8

Maryam91

کاربر نیمه‌فعال
ارسال‌ها
12
امتیاز
0
نام مرکز سمپاد
فرزانگان
پاسخ : برنامه ماز

به نقل از آرمیتا ثابتی اشرف :
یک گراف بسازین
به ازای هر خونه ی جدول یک راس بذارین و اگر دو خونه با هم همسایه اند و 1 نیستند بینشون یک یال بکشید .
بعد روش به این صورت BFS بزنید :
خونه ای که الان توش هستین رو در نظر بگیرین ، و تمام همسایه هاش رو در یک صف ذخیره کنید .
از اول صف شروع کنید و خونه ای که توش هستید اگر خونه ی پایانی نبود همسایه های غیر تکراریشو رو به ته صف اضافه کنید و خود اون خونه رو از صف حذف کنید .

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

سلام
خیلی ممنون!:)
ما توی کلاس عادی کامپیوتر در مورد گراف ها چیزی نمی خونیم.و این برنامه رو باید از راه عادی حل کنیم.
بهترین راهی که الآن به نظر من می رسه استفاده از آرایه یک بعدی است.
که البته مسلمأ برنامه کمی طولانی تر میشه.
 

mamalmln

کاربر حرفه‌ای
ارسال‌ها
414
امتیاز
151
نام مرکز سمپاد
شهید بهشتی شهر ری
شهر
تهران
مدال المپیاد
فیزیک
پاسخ : برنامه ماز

اگه بخواین با ویژوال بنویسین خیلی راحته
 
وضعیت
موضوع بسته شده است.
بالا