एक प्रणाली जो मैं बना रहा हूं उसमें 0-100 के पैमाने के साथ यूआई स्लाइडर्स का एक सेट (संख्या भिन्न होती है) शामिल है। स्लाइडर से मेरा मतलब है कि यूआई जहां आप एक तत्व को पकड़ते हैं और वॉल्यूम कंट्रोल की तरह इसे ऊपर और नीचे खींचते हैं। वे एक एल्गोरिथ्म से जुड़े हैं जो यह सुनिश्चित करता है कि वे हमेशा कुल 100 हों। इसलिए जब एक स्लाइडर को ऊपर ले जाया जाता है, तो बाकी सभी नीचे चले जाते हैं, अंततः शून्य पर। जब एक को नीचे ले जाया जाता है, तो दूसरे ऊपर चले जाते हैं। हर समय कुल 100 होना चाहिए। इसलिए यहां स्लाइडर के विभिन्न मूल्य हैं, लेकिन वे कुल 100% हैं:
----O------ 40
O---------- 0
--O-------- 20
--O-------- 20
--O-------- 20
यदि पहला स्लाइडर फिर 40 से 70 तक उत्तर प्रदेश को स्थानांतरित करता है, तो अन्य को DOWN को मान में स्थानांतरित करना होगा (जैसा कि स्लाइडर को खींचा गया है)। नोट तीन स्लाइडर्स 20 से 10 में बदल गए, और एक शून्य पर रहा क्योंकि यह कम नहीं जा सकता है।
-------O--- 70
O---------- 0
-O--------- 10
-O--------- 10
-O--------- 10
बेशक, जब कोई भी स्लाइडर 0 या 100 तक पहुंचता है, तो वह आगे नहीं बढ़ सकता है, जो कि मेरे सिर को वास्तव में चोट लगी है। इसलिए यदि कोई स्लाइडर अधिक गति करता है, तो अन्य नीचे की ओर जाते हैं, लेकिन जब उनमें से कोई भी शून्य तक पहुंचता है तो शेष जो शून्य तक नहीं पहुंचते हैं, वे कम स्थानांतरित हो सकते हैं।
मैं यह यहाँ पूछ रहा हूँ क्योंकि यह प्रश्न एल्गोरिथ्म के लिए विशिष्ट है कार्यान्वयन नहीं। FWIW मंच एंड्रॉइड जावा है, लेकिन यह विशेष रूप से प्रासंगिक नहीं है।
जिस दृष्टिकोण को मैंने अपने पहले स्टैब के साथ लिया था, वह स्थानांतरित किए गए स्लाइडर के प्रतिशत परिवर्तन की गणना करने के लिए था। मैंने तब उस परिवर्तन को विभाजित किया और इसे (दूसरी दिशा में) अन्य स्लाइडर मूल्यों पर लागू किया। हालांकि समस्या यह है कि प्रतिशत का उपयोग करके और गुणा करके, यदि कोई स्लाइडर शून्य हो जाता है, तो इसे फिर से शून्य से कभी नहीं बढ़ाया जा सकता है - इसका शुद्ध परिणाम यह है कि व्यक्तिगत स्लाइडर्स शून्य पर अटक जाते हैं। मैंने राउंडिंग समस्याओं से बचने के लिए 0 - 1,000,000 की सीमा के साथ स्लाइडर्स का उपयोग किया है और यह मददगार प्रतीत होता है, लेकिन मैंने अभी तक एक एल्गोरिथ्म तैयार किया है जो सभी परिदृश्यों को अच्छी तरह से संभालता है।