के साथ हस्ताक्षरित डिवीजन मैं रोलिंग औसत की गणना करने की कोशिश कर रहा हूं, और थोड़ी कोशिश करने और प्राप्त करने और अनुकूलित करने के लिए, मैंने गणना को सरल बना दिया है, इसलिए केवल एक ही विभाजन है। जब मूल्य कम हो रहा है, तो एक बिंदु है जहां वर्तमान मूल्य औसत से कम हो जाता है। इस बिंदु पर औसत कूदता है। मुझे कल्पना है कि ऐसा इसलिए है क्योंकि विभाजन को हस्ताक्षरित किया गया है, और मेरे न्यूमेरेटर के साइन बिट को बड़े पैमाने पर हस्ताक्षरित संख्या के रूप में व्याख्या किया गया है। मुझे यकीन नहीं है कि इस समस्या को बीमा करने के लिए मुझे हस्ताक्षर किए जाने की आवश्यकता क्यों है, फिर से दिखाई नहीं दे रहा है।हस्ताक्षरित संख्या
unsigned int AverageUsage;
unsigned int TotalUsage;
unsigned int incCount;
AverageUsage = (TotalUsage - AverageUsage)/++incCount + AverageUsage;
AverageUsage हमेशा धनात्मक रहेगी, लेकिन जब TotalUsage AverageUsage नीचे चला जाता है, मुझे यकीन है कि क्या विभाजन
AverageUsage = (signed int)(TotalUsage - AverageUsage)/++incCount + AverageUsage;
अंश सेट हो जाएगा पर हस्ताक्षर किए के साथ की उम्मीद नहीं कर रहा हूँ, लेकिन मुझे यकीन है कि नहीं कर रहा हूँ विभाजन कैसे होगा।
AverageUsage = (signed int)((signed int)(TotalUsage - AverageUsage)/++incCount) + AverageUsage;
काम करना चाहिए (मैं इस पूर्ण आपरेशन के परिणाम की गारंटी नकारात्मक कभी नहीं होगा सकते हैं), लेकिन मैं मामलों के बारे में चिंतित हूँ जब incCount कि 'दिखता है' नकारात्मक एक मूल्य तक पहुँचता है। एक अगर बयान
धन्यवाद की आवश्यकता नहीं है
- जरूरत नहीं है:
वहाँ कि उम्मीद है कि यह करने के लिए एक सरल उपाय है!
यदि आप इन सभी चरों की घोषणा शामिल करते हैं तो इससे मदद मिलेगी। सी के पदोन्नति नियम विभिन्न उप-अभिव्यक्तियों के प्रकारों पर निर्भर करते हैं। उदाहरण के लिए, औसत उपयोग एक int है? हस्ताक्षरित int? हस्ताक्षरित छोटा? आदि – Nemo
मुझे इस कोड का संदेह है; क्या आप सुनिश्चित हैं कि यह अंकगणितीय रूप से सही है और "संचयी औसत" की बजाय "रोलिंग औसत" की गणना करता है? रोलिंग औसत को "हाल के मूल्यों" के बफर की आवश्यकता होगी। – Clifford
@ क्लाइफोर्ड। यह एक बुनियादी आईआईआर है। आप शायद एक इंटीग्रेटर-कंघी एफआईआर के बारे में सोच रहे हैं; जो सांख्यिकीय नमूना मतलब (चल रहा/रोलिंग) के बराबर है। भले ही, वे दोनों सही हैं; जनसंख्या के लिए कम-पास फ़िल्टर और अनुमान के रूप में। –