مشاهده نسخه کامل
: سوال(پیدا کردن کوتاه ترین مسیر)
سلام.یه قرمول میخواستم برای کوتاه ترین مسیر بین سلول های یه شانه عسل.که سلول های این شونه شماره گذاری شده به صورت مارپیچ در جهت عقربه ساعت از مرکز کندو به بیرون.این سلول ها از 1 تا 10000 هستن.اگه موتوجه نشدین به شکل زیر نگاه کنید.
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
مثلا از سلول 19 تا 30 کوتاهترین مسیر شامل 5 خانه است.حالا ما یه فرمول میخوایم که اگه شماره 2تا سلول رو داشته باشیم بتونیم عدد کوتاهترین مسیر به ما بگه حالا ممکنه جندتا مسیر باشه ولی فقط تعداد خونه ها مهمه.
ممتون میشم یه مومن جواب اینو بهم بده البته از خجالتش در میایم
davy jones
03-06-2010, 12:42
سوالی بس جانکاه بود!:31:
اینایی که میگم شاید به جواب ربطی نداشته باشه ولی ممکنه تو حلش به درد بخوره.
1- اعداد رو به صورت حلقه حلقه در نظر میگیریم. یعنی مثلا در حلقه اول عدد 1 به تنهایی حضور داره و در حلقه دوم اعداد 2 تا 7 و همین طور تا آخر.
2- هر عدد رو میشه تعیین کرد که توی کدوم حلقه است.
3- بدیهیه که تعداد خونه های کوتاهترین مسیر، حداکثر برابر با مجموع شماره های حلقه های دو عدد مورد نظر منهای یک هستش. چون با هر حرکت روی مسیر میشه به حلقه های درونی رفت تا به حلقه ی اول (خونه 1) رسید و بعد میشه از حلقه ی اول دور شد و با هر حرکت یک حلقه دور تر شد. البته همونطور که گفتم ممکنه این کوتاهترین مسیر نباشه ولی هر مسیری رو که انتخاب بکنیم حداکثر باید همین تعداد خونه رو در بر بگیره. مثلا عدد 36 در حلقه چهارمه و عدد 41 در حلقه پنجم. بنابراین میشه یک مسیر بدین ترتیب انتخاب کرد: 36-18-7-1-2-9-22-41 که طول مسیر برابر با مجموع شماره ی حلقه های دو عدد 41 و 36 منهای یک هستش. 1-4+5=8
البته واضحه که این مسیر کوتاهترین نیست. مثلا میشه از عدد 7 مستقیم به 2 رفت و نیازی به استفاده از حلقه اول نیست. ولی میخواستم روش مد نظرم رو با یه مثال توضیح داده باشم.
یه فکرای تازه ای هم به ذهنم زده که دارم روش بیشتر فکر میکنم. انشالله اگه به نتیجه ای رسید میذارم.
اقا ممنون که داری کمکم میکتی.به نظر من ما باید یه رابطه ای بین هر عدد با 6تا اعداد کنار خودش پیدا کنیم اگه این رابطه کشف بشه به نظرم دیگه تقریبا کار تمومه.یه نگاه به این عکس بنداز ببین مشکلی حل میکنه:
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] ([ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ])
من یه راه حلی به زهتم رسیده.البته اینو بگم که من میخوام برنامه اون رو بنویسم.
به نظر من باید هر سلول دارای یه مختصات دکارتی باشه.مثلا سلول 1 رو بهش(0و0) میدیم.ولی هنوز نمیدونم مختصات هر سلول جه جوری تعیین بشه.قرض میگیریم که مختصات رو میدونیم،اونوقت میتونیم با رسم خطی بین دو سلول مد نظر کوتاهترین مسیرو نعیین کنیم.طوری که هر سلولی که خط ازش رد میشه،حساب بشه . اگه خط ببین دو سلول قرار گرفته باشه به صورت تصادفی یا رندومی یکی از این دوتا انتخاب بشه.وقتی اندازه خط رو داشته باشم و اندازه هر سلول رو هم داشته باشیم شاید بتونیم به تعداد خونه ها پی ببریم.حالا اگه اساتید نظری دارن بگن؟
davy jones
05-06-2010, 07:35
من یه راه حلی به زهتم رسیده.البته اینو بگم که من میخوام برنامه اون رو بنویسم.
به نظر من باید هر سلول دارای یه مختصات دکارتی باشه.مثلا سلول 1 رو بهش(0و0) میدیم.ولی هنوز نمیدونم مختصات هر سلول جه جوری تعیین بشه.قرض میگیریم که مختصات رو میدونیم،اونوقت میتونیم با رسم خطی بین دو سلول مد نظر کوتاهترین مسیرو نعیین کنیم.طوری که هر سلولی که خط ازش رد میشه،حساب بشه . اگه خط ببین دو سلول قرار گرفته باشه به صورت تصادفی یا رندومی یکی از این دوتا انتخاب بشه.وقتی اندازه خط رو داشته باشم و اندازه هر سلول رو هم داشته باشیم شاید بتونیم به تعداد خونه ها پی ببریم.حالا اگه اساتید نظری دارن بگن؟
منطورتون رو متوجه شدم اما مختصات دکارتی جواب نمیده. چون خونه های کندو 6 ضلعیه. اگه مربع بود میشد از مختصات دکارتی استفاده کرد.
برای این کار باید یه دستگاه مختصات جدید ابداع کرد.:31:
ولی برای مشخص کردن موقعیت هر عدد ایده ای به ذهنم زد. به خونه هایی که در شکل دوم قرمزشون کردی دقت کن. میتونیم یه جورایی اونها رو خونه های اصلی تلقی کنیم. ابتدا باید این نکته رو بگم که فاصله ی کوچکترین عضو هر حلقه تا کوچکترین عضو حلقه ی بعدی به ترتیب از مضارب 6 تبعیت میکنه. (البته به جز حلقه ی اول) فاصله ی بین 1 به عنوان کوچکترین عضو حلقه ی اول تا عدد 2 به عنوان کوچکترین عضو حلقه ی دوم، یک واحده و فاصله ی بین 2 تا 8، شش واحد و فاصله ی بین 8 تا 20، دوازده واحد است و به همین ترتیب ...
حال فاصله ی هر کدام از خانه های قرمز رنگ تا خانه ی قرمزرنگ حلقه ی بعد از فاصله ی کمترین عضوهای این دو حلقه به علاوه ی یک شروع میشود و به ترتیب یکی یکی زیاد میشود تا به اختلاف فاصله ی کوچکترین عضوهای دو حلقه ی بعد برسد. به طور مثال اختلاف کوچکترین عضوهای حلقه های4 و 5، هجده تاست (20-38=18) و میبینیم که اختلاف خانه های قرمز در این دو حلقه به این ترتیب است:
22 با 41، نوزده تا اختلاف دارد
25 با 45، بیست تا اختلاف دارد
28 با 49، بیست و یک تا اختلاف دارد
.
.
.
37 با 61، بیست و چهار تا اختلاف دارد. که عدد 24 اختلاف بین کوچکترین عضوهای بین حلقه های 5 و 6 نیز هست.
این قاعده بین همه ی حلقه ها برقراره. (میتونی امتحان کنی:27:)
حالا نمیدونم این برای مختصات بندی خونه ها به درد میخوره یا نه؟
موفق باشین.
89/3/15
اون قضیه سیسنم مختصات رو هرچی فکر کردم نمیشه تعریف کنی.اینی که شما میگید درسته ولی من اختلاف فاصله بین سلول هارو میخوام.مثلا فرض کن یه زنبور میخواد از سلول 19 بره به 30.نزدیک ترین راهی که میتونه بره اینکه از 19 بره به 7-6-5-15و30 که این جوابش میشه 5سلول.حالا اگه ما مثلا از سلول 1500 بخواهیم بریم به سلول 5000 نزدیکترین راه بین این دو جند سلول فاصله داره؟
بازم ممنون که به قکر مایی
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.