إيم محاولة إرجاع كفيكتور من الدالة التي من المفترض أن حساب المتوسط المتحرك. سؤالي هو كيفية جعل وظيفة أكثر كفاءة. الرياضيات على ما يرام، وأنا أتساءل أكثر إذا كنت تفعل شيئا خاطئا في العودة كفيكتور. هنا هو رمز لدي حتى الآن: يمكنني استخدام منشئ الافتراضي للحفاظ على كفيكتور من تحديد قيمة افتراضية. حاولت نفس الشيء مع تغيير الحجم الذي هو أبطأ بكثير. هل لديك أي اقتراحات كيف يمكن تحسين هذا لأنك تدعي أن العودة تستغرق أطول، قد لا تكون المشكلة في وظيفة نفسها، ولكن في الموقع حيث يتم استخدام القيمة التي تم إرجاعها. للأسف، هيريس حيث الوقت الخاص بك النفايات النفايات: في تخصيص كفيكتور في كل مرة يتم استدعاء المتوسط. ويفترض أن يسمى مرارا وتكرارا، لذلك ثيريس لا حاجة لها أن يكون تخصيص ناقلات جديدة في كل مرة. في كفيكتور :: المشغل. أنه يحتوي على أكثر قليلا من النفقات العامة من الوصول إلى مجموعة صفيف لأن ثيريس هذا مزعجة هو دعوة منفصلة القيام به على كل مكالمة إلى المشغل. في كفيكتور :: إلحاق. ليس فقط أنها استدعاء إسديتاشد. ولكن أيضا فإنه يتحقق وتعديل طول كذلك. لاحظ أن ثيريس لا شيء على الإطلاق خطأ في العودة من القيمة الخاصة بك. لها عملية تافهة ويأخذ بجانب أي وقت من الأوقات. كنت تفعل ذلك موافق عندما يتعلق الأمر بالعودة - والعودة فقط. ولكن كنت لا تبين لنا كيف يمكنك استخدام قيمة عاد، لذلك لا أستطيع أن أقول لكم إذا ربما كنت تفعل شيئا خاطئا هناك. لمنع التوزيعات المتكررة والنفقات العامة للمشغل، يمكنك استخدام فئة تحافظ على متجه جاهز لإعادة استخدامها، واستخدام مؤشر إلى متجهات البيانات بدلا من استخدام المتجه مباشرة. لجعله يذهب أي أسرع من المحتمل أن تتطلب استخدام سيمين intininsics. I أعرف هذا يمكن تحقيقه مع دفعة حسب: ولكن أنا حقا ترغب في تجنب استخدام دفعة. لقد غوغلد ولم يتم العثور على أي أمثلة مناسبة أو مقروءة. أساسا أريد أن تتبع المتوسط المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 أرقام كعينة البيانات. ما هي أسهل طريقة لتحقيق ذلك أنا جربت باستخدام صفيف دائري، المتوسط المتحرك الأسي ومتوسط متحرك أكثر بساطة وجدت أن النتائج من مجموعة دائرية تناسب احتياجاتي أفضل. سأل 12 يونيو 12 في 4:38 إذا احتياجاتك بسيطة، قد حاولت مجرد استخدام المتوسط المتحرك الأسي. ببساطة، يمكنك إجراء متغير تراكم، وكما التعليمات البرمجية الخاصة بك ينظر في كل عينة، التعليمات البرمجية بتحديث تراكم مع القيمة الجديدة. يمكنك اختيار ألفا ثابت ما بين 0 و 1، وحساب هذا: تحتاج فقط إلى العثور على قيمة ألفا حيث تأثير عينة معينة يستمر فقط لحوالي 1000 عينة. هم، إم لا فعلا متأكد من أن هذا هو مناسب لك، والآن أن إيف وضعه هنا. المشكلة هي أن 1000 هو نافذة طويلة جدا لمتوسط متحرك أسي إم غير متأكد من وجود ألفا التي من شأنها أن تنتشر المتوسط على آخر 1000 أرقام، دون تدفق في حساب العائمة. ولكن إذا كنت تريد متوسط أصغر، مثل 30 أرقام أو نحو ذلك، وهذا هو وسيلة سهلة جدا وسريعة للقيام بذلك. أجاب يونيو 12 12 في 4:44 1 على مشاركتك. ويمكن أن يسمح المتوسط المتحرك الأسي للألفا بأن يكون متغيرا. لذلك يسمح هذا باستخدامها لحساب متوسطات قاعدة الوقت (على سبيل المثال وحدات البايت في الثانية). إذا كان الوقت منذ آخر تحديث تراكم هو أكثر من 1 ثانية، يمكنك السماح ألفا يكون 1.0. خلاف ذلك، يمكنك السماح ألفا يكون (أوسيكس منذ last1000000 الماضي). ندش ج 12 يونيو في 6:21 أساسا أريد أن تتبع المتوسط المتحرك لتيار مستمر من تيار من أرقام النقطة العائمة باستخدام أحدث 1000 أرقام كعينة البيانات. لاحظ أن أدناه يقوم بتحديث المجموع كعناصر كما أددريبلاسد، وتجنب مكلفة O (N) اجتياز لحساب المجموع - اللازمة للمتوسط - عند الطلب. يتم إجراء إجمالي معلمة مختلفة من T لدعم على سبيل المثال. باستخدام طويلة طويلة عندما يبلغ مجموعها 1000 ثانية s، إنت لشار s، أو ضعف إلى مجموع تعويم s. هذا هو معيب بعض الشيء في أن الأمثلة يمكن أن تذهب الماضي إنتماكس - إذا كنت تهتم يمكنك استخدام طويلة غير موقعة. أو استخدام عضو بيانات بول إضافية لتسجيل عندما يتم تعبئة الحاوية لأول مرة في حين ركوب الدراجات نامبلز حول مجموعة (أفضل ثم تسميته شيء حميدة مثل بوس). أجاب 12 يونيو 12 في 5:19 واحد يفترض أن المشغل كوتفويد (عينة T) هو في الواقع كوتيفويد أوبيراتورلتلت (عينة T) كوت. نداش أوبليس يونيو 8 14 في 11:52 أوبليس أهه. رصدت جيدا. في الواقع كنت أعني أن يكون عاملا باطلا () (عينة T) ولكن بالطبع يمكنك استخدام أي تدوين كنت أحب. سوف إصلاح، وذلك بفضل. نادش توني D يونيو 14 14 في 14: 27QT ستودي باك 2006 مسح (صفحة 141-142).doc - 1. تتحرك. 1. نقل المتوسط البيانات الدورية على سبيل المثال. المبيعات الشهرية قد يكون فوكتواتيون عشوائي كل شهر على الرغم من الاتجاه العام يجري واضح. يساعد المتوسط المتحرك في تمهيد هذه التغييرات العشوائية. المتوسط المتحرك هو التوقعات لفترة تستغرق متوسط الفترات السابقة. مثال: يمثل الجدول أدناه مبيعات الشركة وحساب 3 و 6 متوسطات متحركة شهريا للبيانات شهر يناير كانون الثاني 1200 بلوسمنيبرواري 1280 مارس 1310 أبريل 1270 مايو 1190 يونيو 1290 يوليو 1410 أغسطس 1360 سبتمبر 1430 أكتوبر 1280 نوفمبر 1410 ديسمبر 1390 الحل. يتم حساب هذه على النحو التالي هذه المعاينة قد تعمد عدم وضوح الأقسام. الاشتراك لعرض النسخة الكاملة. أبريلرسكوس توقعات يناير فبراير 3 مارس 120012801310 3 مارسكوس توقعات فبراير مارس أبريل 3 128013101270 3 وهكذا أونهليب وبالمثل لمدة 6 المتوسط المتحرك الشهري يوليو توقعات يناير فبراير مارابرماي يونيو 6 120012801310127011901290 6 وهكذا أونهليب 3 أشهر المتوسط المتحرك 6 أشهر المتوسط المتحرك أبريل 1263 مايو 1287 يونيو 1257 يوليو 1250 1257 أغسطس 1297 1292 سيبتيمب r 1353 1305 أكتوبر 1400 1325 نوفمبر 1357 1327 ديسمبر 1373 1363 ملاحظة: عند رسم المتوسط المتحرك على الرسوم البيانية، يتم رسم النقاط كنقطة وسط لفترة المتوسط، على سبيل المثال في مثالنا التنبؤ هذه المعاينة قد تعمد عدم وضوح الأقسام. الاشتراك لعرض النسخة الكاملة. هذه هي نهاية المعاينة. اشترك للوصول إلى بقية المستند.
No comments:
Post a Comment