यहाँ मैं इसे कैसे समझ सकता हूँ:
कितने प्रतिशत xएक सीमा में है
मान लेते हैं कि आपके पास एक सीमा 0है 100। उस सीमा से एक मनमानी संख्या को देखते हुए, उस सीमा से "प्रतिशत" क्या है? यह बहुत सरल होना चाहिए, 0होगा 0%, 50होगा 50%और 100होगा 100%।
अब, क्या हुआ अगर आपके रेंज था 20करने के लिए 100? हम ऊपर के समान तर्क लागू नहीं कर सकते (100 से विभाजित करें) क्योंकि:
20 / 100
हमें नहीं देना चाहिए 0( अब 20होना चाहिए 0%)। इसे ठीक करने के लिए सरल होना चाहिए, हमें केवल 0मामले के लिए अंश बनाने की आवश्यकता है 20। हम घटाकर ऐसा कर सकते हैं:
(20 - 20) / 100
हालाँकि, यह 100अब और काम नहीं करता क्योंकि:
(100 - 20) / 100
हमें नहीं देता 100%। फिर, हम इसे भाजक से घटाकर भी ठीक कर सकते हैं:
(100 - 20) / (100 - 20)
यह पता लगाने के लिए एक सामान्यीकृत समीकरण कि किस xसीमा में % निहित है:
(x - MIN) / (MAX - MIN)
स्केल रेंज से दूसरी रेंज
अब जब हम जानते हैं कि एक सीमा में कितने प्रतिशत संख्या निहित है, हम इसे संख्या को दूसरी श्रेणी में मैप करने के लिए लागू कर सकते हैं। एक उदाहरण के माध्यम से चलते हैं।
old range = [200, 1000]
new range = [10, 20]
यदि हमारे पास पुरानी श्रेणी में एक संख्या है, तो नई श्रेणी में संख्या क्या होगी? मान लीजिए कि संख्या है 400। पहले यह पता करें कि 400पुरानी सीमा के भीतर कितना प्रतिशत है। हम अपने समीकरण को ऊपर लागू कर सकते हैं।
(400 - 200) / (1000 - 200) = 0.25
तो, पुरानी सीमा 400में स्थित है 25%। हमें केवल यह पता लगाने की आवश्यकता है 25%कि नई श्रेणी की संख्या क्या है । के बारे में सोचो क्या 50%की [0, 20]है। यह 10सही होगा? आप उस उत्तर पर कैसे पहुंचे? ठीक है, हम बस कर सकते हैं:
20 * 0.5 = 10
लेकिन, इससे क्या [10, 20]? हमें 10अब तक सब कुछ स्थानांतरित करने की आवश्यकता है । उदाहरण के लिए:
((20 - 10) * 0.5) + 10
अधिक सामान्यीकृत सूत्र होगा:
((MAX - MIN) * PERCENT) + MIN
क्या है 25%के मूल उदाहरण के लिए [10, 20]:
((20 - 10) * 0.25) + 10 = 12.5
तो, 400सीमा में [200, 1000]करने के लिए नक्शे होगा 12.5रेंज में[10, 20]
TLDR
xपुरानी रेंज से नई रेंज में मैप करने के लिए:
OLD PERCENT = (x - OLD MIN) / (OLD MAX - OLD MIN)
NEW X = ((NEW MAX - NEW MIN) * OLD PERCENT) + NEW MIN