PDA

View Full Version : سوال: تقسیم یک آرایه به 3 بخش و محاسبه محدوده هر بخش



veniz2008
دوشنبه 07 آذر 1390, 17:54 عصر
سلام دوستان،برای تقسیم خانه های یک آرایه به دو بخش مساوی از فرمول(mid = 2/(low + high استفاده میشه،حالا اگر بخواهیم آرایه رو به 3 بخش مساوی تقسیم کنیم و محدوده هر بخش را داشته بشیم از چه فرمولی استفاده میشه(فرض کنید ابتدای آرایه low و انتهای اون high باشه و دو تا متغیر m1 و m2 داریم،حالا چطوری محدوده از low تا m1 و m1 تا m2 و m2 تا high رو بدست بیاریم)،اگر بازه رو تقسیم بر 4 کنیم اونوقت چطور میشه؟،آیا فرمول ثابتی برای تقسیم بازه در اینگونه موارد وجود داره؟،ممنون از راهنمایی دوستان.

محمد فدوی
دوشنبه 07 آذر 1390, 18:37 عصر
عددی مثل d = (low + high) / 3 رو انتخاب کن.
حالا اولین محدوده میشه بازه ی (low, low + d]. دومین محدوده بازه ی (low + d, low + 2d] هستش و آخرین بازه [low + 2d, high] هستش.

این قضیه برای n قسمت هم قابل تعمیم هستش.

veniz2008
دوشنبه 07 آذر 1390, 19:07 عصر
عددی مثل d = (low + high) / 3 رو انتخاب کن.
حالا اولین محدوده میشه بازه ی (low, low + d]. دومین محدوده بازه ی (low + d, low + 2d] هستش و آخرین بازه [low + 2d, high] هستش.

این قضیه برای n قسمت هم قابل تعمیم هستش.
با تشکر از پاسخ شما،ولی به نظر میرسه که تقسیم بازه چندان بهینه نیست(محدوده بازه ها چندان یکسان نیستن).
فرض کنید آرایه ای با 8 خانه داریم( یعنی low = 0 و high = 7 هستش)،حالا d میشه 2 ( مقدار کف رو در نظر میگیریم)،طبق فرمول شما داریم:
0 تا 1 , بازه بعدی 2 تا 3 و آخرین بازه هم 4 تا 7 میشه،یعنی محدوده اول 2 خانه، محدوده دوم هم 2 خانه آخرین محدوده 4 خانه هستش،درصورتیکه بهینه این هستش که 2 تا از محدوده ها 3 خانه ای و یک محدوده هم 2 خانه ای باشه،آیا دوستان فرمول بهتری سراغ دارن؟،ممنون از راهنمایی همه دوستان.

veniz2008
سه شنبه 08 آذر 1390, 10:30 صبح
دوستان کسی نیست که راهنمایی کنه؟؟؟ :متفکر:

سوداگر
سه شنبه 08 آذر 1390, 16:03 عصر
⌉d=⌈(low+high)/3
منطورم جزء صحیح (سقف/ بالا) بود، هرکاری کردم درست تایپ نمی شد.