تبلیغات

فرمول انتقال یک عدد از یک بازه به بازه دیگر

انتقال یک عدد از یک بازه به یک بازه دیگر، به این معناست که اگر ما عدی بین بازه‌ی a تا b در اختیار داشته باشیم، بتوانیم آن را به عددی در بین بازه‌ی c تا d تبدیل کنیم. در اینجا a و c ابتدای بازه و b و d نیز انتهای بازه خواهند بود.

روش محاسبه

بازه‌ی اول را از Min1 تا Max1 در نظر می‌گیریم. بازه‌ی دوم را نیز از Min2 تا Max2 در نظر می‌گیریم.

  • Min1 و Min2، ابتدای بازه یا کمترین مقدار بازه‌ی خودشان محسوب می‌شوند.
  • Max1 و Max2، انتهای بازه یا بیشترین مقدار بازه‌ی خودشان محسوب می‌شوند.

حالا عددی با نام Value1، در بازه‌ی اول وجود دارد که می‌خواهیم آن را به عددی در بازه‌ی دوم انتقال دهیم و آن را Value2 در نظر می‌گیریم. مراحل زیر را دنبال کنید تا به فرمول نهایی برسید:

1. طول بازه‌ها (اختلاف بازه)

ابتدا باید طول دو بازه را حساب کنیم. که از آن می‌توان به عنوان اختلاف بزرگترین مقدار از کمترین مقدار بازه نیز نام برد:

Diff1 = Max1 – Min1
Diff2 = Max2 – Min2

2. فاصله مقدار اول از ابتدای بازه‌ی خود

حالا بایستی فاصله‌ی Value1 را از ابتدای بازه‌ی خود به دست آوریم:

Left1 = Value1 – Min1

3. افزایش نسبت

فاصله‌ی مقدار اول را از ابتدای بازه‌ی خود که به دست آوردیم؛ حالا باید آن را به بازه‌ی دوم انتقال دهیم که این کار در سه مرحله صورت می‌گیرد:

  1. آن را در طول بازه‌ی دوم ضرب می‌کنیم.
  2. حاصل را بر طول بازه‌ی اول تقسیم می‌کنیم.
  3. حاصل را با ابتدای بازه‌ی دوم جمع می‌کنیم.

Left1ToDiif2 = Left1 * Diff2
Left1ToDiif2InDiff1 = Left1ToDiif2 / Diff1
Value2 = Left1ToDiif2InDiff1 + Min2

فرمول  نهایی انتقال بازه

می‌توان به صورت خلاصه، فرمول را به صورت زیر تکمیل کرد:

Value2 = (Value1 – Min1) * (Max2 – Min2) / (Max1 – Min1) + Min2

نکته
اگر طول بازه‌ی اول برابر 0 باشد، آنگاه جواب نهایی برابر ابتدای بازه‌ی دوم خواهد بود!

مثال

عدد 51 در بازه‌ی 50 تا 100 قرار دارد و می‌خواهیم آن را به معادل خود در بازه‌ی 150 تا 200 انتقال دهیم. شاید در نگاه ساده به دلیل راحت بودن اختلاف اعداد، بتوانید جواب را حدس بزنید؛ اما فرض کنید به جای انتقال به بازه‌ی 150 تا 200، آن را به بازه‌ی 0 تا 1 انتقال می‌دادیم! در پایین، هردو مثال را به ترتیب نوشته‌ایم:

Value2 = (51 – 50) * (200 – 150) / (100 – 50) + 150
Value2 = 1 * 50 / 50 + 150
Value2 = 50 / 50 + 150
Value2 = 1 + 150
Value2 = 151

Value2 = (51 – 50) * (1 – 0) / (100 – 50) + 0
Value2 = 1 * 1 / 50 + 0
Value2 = 1 / 50 + 0
Value2 = 0.2 + 0
Value2 = 0.2

تبلیغات
0
کانال تلگرام فول کده
تبلیغات

درباره نویسنده

هادی اکبرزاده

[ مدیر فول کده ]

علاقه‌مند به اشتراک گذاری اطلاعات در هر زمینه‌ای / برنامه‌نویس / مدیر فول کده

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

نظرات ثبت شده بدون دیدگاه