animal_magic का जवाब सही है कि आपको सबसे छोटी से लेकर सबसे बड़ी संख्या को जोड़ना चाहिए, हालांकि मैं यह दिखाने के लिए एक उदाहरण देना चाहता हूं।
मान लें कि हम एक फ्लोटिंग पॉइंट फॉर्मेट में काम कर रहे हैं जो हमें सटीकता का चौंका देने वाला 3 अंक देता है। अब हम दस नंबर जोड़ना चाहते हैं:
[1000, 1, 1, 1, 1, 1, 1, 1, 1, 1]
बेशक सटीक उत्तर 1009 है, लेकिन हम अपने 3 अंकों के प्रारूप में ऐसा नहीं कर सकते। 3 अंको तक गोलाई में, सबसे सटीक उत्तर जो हमें मिलता है वह है 1010। यदि हम सबसे छोटे से छोटे को जोड़ते हैं, तो प्रत्येक लूप पर:
Loop Index s
1 1
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
10 1009 -> 1010
तो हम अपने प्रारूप के लिए सबसे सटीक उत्तर प्राप्त कर सकते हैं। अब मान लेते हैं कि हम सबसे बड़े से लेकर सबसे छोटे तक को जोड़ते हैं।
Loop Index s
1 1000
2 1001 -> 1000
3 1001 -> 1000
4 1001 -> 1000
5 1001 -> 1000
6 1001 -> 1000
7 1001 -> 1000
8 1001 -> 1000
9 1001 -> 1000
10 1001 -> 1000
चूंकि प्रत्येक ऑपरेशन के बाद फ्लोटिंग पॉइंट संख्याओं को गोल किया जाता है, इसलिए सभी जोड़ दूर हो जाते हैं, जिससे हमारी त्रुटि 1 से 9 तक बढ़ जाती है। अब सोचिए कि अगर जोड़ने के लिए आपके सेट की संख्या 1000 थी, और फिर एक सौ 1, या एक मिलियन। ध्यान दें कि वास्तव में सटीक होने के लिए, आप सबसे छोटी दो संख्याओं को जोड़ना चाहते हैं, फिर परिणाम को अपने संख्याओं के सेट में बदल दें।