2010-10-31 23 views
5

क्यों द्विभाजन विधि में यहcalculate मध्य

c = a + (b - a)/2. 
सरल के बजाय

के साथ एक और ख के बीच ग मध्य गणना करने के लिए बेहतर है:

c = (a + b)/2. 

सभी चर तैर रहे हैं इंगित करता है।

+0

क्या हम 'int' या 'float' से बात कर रहे हैं? और क्या आप "यह बेहतर क्यों है" का संदर्भ शामिल कर सकते हैं? –

+2

आपको क्यों लगता है कि पहली विधि बेहतर है? इसमें दूसरी विधि की तुलना में एक अतिरिक्त फ़्लोटिंग-पॉइंट ऑपरेशन शामिल है; यह दुर्लभ मामले में अतिप्रवाह का जोखिम उठाता है जहां 'ए' और' बी 'विपरीत संकेतों के साथ विशाल होते हैं (जबकि दूसरी विधि लगभग समान दुर्लभ मामले में अतिप्रवाह जोखिम का जोखिम करती है जहां 'ए' और' बी' एक ही संकेत के साथ विशाल होते हैं); ओवरफ्लो को अनदेखा करते हुए, दूसरी विधि हमेशा एक ठेठ मशीन पर सही ढंग से गोल किए गए मिडपॉइंट की गणना करेगी। तो सबसे पहले, कम से कम जब 'ए' और 'बी' बंद होते हैं (और संभवतः सामान्य में; मुझे यकीन नहीं है)। तो मुझे पहली विधि के लिए कोई साफ जीत नहीं दिख रही है। –

उत्तर

6

यह किसी भी संभावित ओवरफ्लो/इंटरमीडिएट गणनाओं में सटीकता के नुकसान से बचने के लिए है।

+2

ओवरफ्लो फ़्लोटिंग पॉइंट प्रकारों में कोई समस्या नहीं होनी चाहिए। परिशुद्धता का नुकसान हो सकता है। –

+0

मिमीएम, मैंने अध्ययन किया है कि घटाव बिंदु संख्या के साथ घटाव के अलावा घटाव ऑपरेशन खराब है, तो मैं + के साथ सटीकता क्यों खोला और नहीं -? –

+0

कैसे और क्यों? मुझे यह क्यों लगता है कि यह क्यों काम करता है के लिए एक स्पष्टीकरण नहीं मिल रहा है। – Will

संबंधित मुद्दे