Sunday 14 January 2018

الانتقال من المتوسط خوارزمية التنفيذ


تنفيذ بفل للمتوسط ​​المتحرك هذا التنفيذ لا يبدو على الإطلاق مثاليا أعتقد أنه يجب أن يستخدم خوارزمية تدريجية قياسية مستقلة عن حجم النافذة. في مثل هذه الخوارزمية، يحتفظ يود مجموع من العناصر لحجم نافذة، وفي كل خطوة، ببساطة طرح أقدم عنصر وإضافة عنصر جديد إلى المجموع. ثم يعود يود نتيجة التقسيم حسب حجم النافذة كمتوسط. مشكلة أخرى يبدو أن أنا دائما الحصول على النتيجة لتكون عددا صحيحا، حتى عندما أرقامي حقيقية. هل هناك طريقة حول هذه العلامات: بفل موفينغفيراجيي أفل هنا كيدار سوادي 17 سبتمبر 2013 في 09:10 ص مشاركة أمب فولوي تحتاج إلى تتبع آخر 7 أيام عمل ساعات في ملف قراءة حلقة مسطحة. يتم استخدامها لقياس التعب من قوائم العمل. الآن لدي شيء يعمل، ولكن يبدو مطول نوعا ما و إم غير متأكد ما إذا كان هناك نمط أن أكثر وضوحا. حاليا، لدي فئة جافا مع صفيف ثابت لعقد البيانات x أيام الماضية، ثم كما قرأت من خلال الملف، أنا ختم العنصر الأول ونقل 6 أخرى (لمدة أسبوع المتداول) مرة أخرى. تتم معالجة هذه المصفوفة الثابتة في أسلوبها الخاص أي. سؤالي: هل هذا هو نهج تصميم معقول، أو هل هناك شيء واضح بشكل واضح وبسيط للقيام بهذه المهمة شكرا رفاق طلب أغسطس 30 11 في 14:33 شكرا الكثير من الرجال: I39ve حصلت على الرسالة: استخدام كائن على مستوى عال واستغلال الطرق ذات الصلة أو العازلة دائرية. إجابات عظيمة، كل منهم. عندما تفكر في ذلك، كنت دائما بحاجة إلى الوصول إلى مجموعة كاملة حتى تتمكن من التخلص من هذا الإدخال الأول - الذي كنت wasn39t 100 متأكد من بلدي. I39m بالارتياح بأنني hadn39t غاب عن 1 بطانة وكان أساسا على معقول، إن لم يكن كفاءة وتتبع المسار هذا هو ما أحب حول هذا الموقع: ذات جودة عالية، والأجوبة ذات الصلة من الناس الذين يعرفون شت بهم. نداش Pete855217 30 أغسطس 11 في 15:05 لماذا يتم التهيئة الأولية الجري الإجمالي إلى نول ما هو نوعه حيث يتم الإعلان أنه سيكون جيدا إذا وضعت بعض عينات التعليمات البرمجية التي تشبه رمز جافا الفعلي. الانتقال، النقد بلدي سيكون ما يلي: وظيفتك لا أكثر من اللازم. يجب أن تكون الدالة أو الطريقة متماسكة. ومن الأنسب أن يفعلوا شيئا واحدا وشيئا واحدا فقط. والأسوأ من ذلك، ما يحدث في حلقة الخاص بك عندما x 5 يمكنك نسخ تشغيلTotal6 في تشغيل إجمالي 5. ولكن بعد ذلك لديك نسختين من نفس القيمة في موقف 5 و 6. في التصميم الخاص بك، وظيفة موفسوفلز العناصر في صفيف الخاص بك بحساب الاشياء يطبع الإجمالي إلى خطأ قياسي إرجاع المجموع أنه لا أكثر من اللازم. اقتراحي الأول ليس نقل الأشياء في المصفوفة. بدلا من ذلك، تنفيذ المخزن المؤقت دائري واستخدامه بدلا من الصفيف. فإنه سيتم تبسيط التصميم الخاص بك. اقتراحي الثاني هو تقسيم الأمور إلى وظائف متماسكة: لديها بنية بيانات (المخزن المؤقت الدائري) تسمح لك بالإضافة إليها (والتي تسقط أقدم إدخال كلما وصلت إلى قدرتها). إنتيراتور ديك وظيفة التي تحسب المجموع على التكرار (كنت لا تهتم إذا كنت حساب المجموع من مصفوفة، قائمة أو دائري بوفر.) لا يطلق عليه المجموع. استدعاء المبلغ، وهو ما كنت الحوسبة. هذا ما معرف تفعل :) that39s معلومات كبيرة لويس، ولكن تذكر هذه الوظيفة هو جزء صغير من وظائف الطبقة، وسيكون من المبالغة لإضافة الكثير من التعليمات البرمجية لجعلها مثالية. كنت صحيحا من الناحية الفنية، وأنا أفهم رمز بلدي لا 39too much39 ولكن في نفس الوقت أحيانا it39s أفضل أن يخطئ على جانب أصغر، رمز أكثر وضوحا من الذهاب للكمال. نظرا لمهارات جافا، حتى جعل الكود الكاذب الذي تصفه تجميع سيكون لي ضربة ميزانيتي على هذا ()، ولكن شكرا لوصف واضح. نداش Pete855217 31 أغسطس 11 في 02:23 همم، it39s ليس عن الكمال، ولكن عن الممارسات الصناعية المعمول بها التي نعرفها على مدى 3 عقود الماضية. التعليمات البرمجية النظيفة هي دائما واحدة التي يتم تقسيمها. لدينا عقود من الأدلة تشير إلى أن هذا هو الطريق للذهاب في الحالة العامة (من حيث الكفاءة من حيث التكلفة، والحد من العيب، والفهم، وما إلى ذلك). إلا إذا كان رمي بعيدا رمز لنوع لمرة واحدة من الشيء. ليس من المكلف أبدا القيام بذلك عندما يبدأ المرء أي تحليل المشكلة بهذه الطريقة. ترميز 101، وكسر المشكلة ويتبع التعليمات البرمجية، لا مبالغة ولا صعبة) نداش luis. espinal 31 أغسطس 11 في 15:55 مهمتك بسيطة جدا و أبروتش كنت قد اعتمدت هو بالتأكيد جيدة لهذا المنصب. ومع ذلك، إذا كنت ترغب في استخدام تصميم أفضل، يجب التخلص من كل هذا العدد حركة يمكنك استخدام أفضل طابور فيفو والاستفادة من وسائل الدفع والبوب ​​على نحو جيد الطريقة التي رمز لن تعكس أي حركة البيانات، فقط المنطقين الإجراءات من البيانات الجديدة وإزالة البيانات أقدم من 7 أيام. أجاب 30 أغسطس 11 في 2014: 30 دليل العلماء والمهندسين لمعالجة الإشارات الرقمية من قبل ستيفن دبليو سميث، دكتوراه في الطب. وهناك ميزة هائلة لمرشح المتوسط ​​المتحرك هو أنه يمكن تنفيذه بخوارزمية سريعة جدا. لفهم هذه الخوارزمية، تخيل تمرير إشارة الدخل، x، من خلال سبع نقاط مرشح المتوسط ​​المتحرك لتشكيل إشارة الإخراج، y. ننظر الآن في كيفية حساب نقطتي خرج متجاورتين، y 50 و y 51: هذه هي نفس نقاط الحساب تقريبا x 48 إلى x 53 يجب أن تضاف إلى y 50، ومرة ​​أخرى y y 51. إذا تم حساب y 50 بالفعل ، الطريقة الأكثر فعالية لحساب ذ 51 هو: مرة واحدة تم العثور على 51 باستخدام y 50، ثم y 52 يمكن حسابها من عينة ذ 51، وهلم جرا. بعد حساب النقطة الأولى في y، كل من النقاط الأخرى يمكن العثور عليها مع إضافة واحدة فقط والطرح لكل نقطة. ويمكن التعبير عن ذلك في المعادلة: لاحظ أن هذه المعادلة تستخدم مصدرين للبيانات لحساب كل نقطة في المخرجات: نقاط من المدخلات والنقاط المحسوبة سابقا من المخرجات. وهذا ما يسمى المعادلة المتكررة، وهذا يعني أن نتيجة حساب واحد يستخدم في الحسابات المستقبلية. (المصطلح العودية له أيضا معان أخرى، وخاصة في علوم الكمبيوتر). يناقش الفصل 19 مجموعة متنوعة من الفلاتر العودية بمزيد من التفصيل. كن على علم بأن المرشح المتكرر للمتوسط ​​المتحرك يختلف كثيرا عن المرشحات العودية النموذجية. على وجه الخصوص، فإن معظم المرشحات التكرارية لديها استجابة الاندفاع طويلة بلا حدود (إير)، تتألف من الجيوب الأنفية والأسي. والاستجابة النبضية للمتوسط ​​المتحرك هي نبضة مستطيلة (الاستجابة النبضية المحدودة، أو منطقة معلومات الطيران). هذه الخوارزمية أسرع من المرشحات الرقمية الأخرى لعدة أسباب. أولا، هناك حسابين فقط لكل نقطة، بغض النظر عن طول نواة الفلتر. ثانيا، الجمع والطرح هي العمليات الرياضيات الوحيدة المطلوبة، في حين أن معظم المرشحات الرقمية تتطلب الضرب تستغرق وقتا طويلا. ثالثا، مخطط الفهرسة بسيط جدا. كل مؤشر في إق. يتم العثور على 15-3 عن طريق إضافة أو طرح الثوابت الصحيحة التي يمكن حسابها قبل بدء التصفية (أي p و q). رابعا، يمكن تنفيذ خوارزمية كاملة مع تمثيل صحيح. اعتمادا على الأجهزة المستخدمة، يمكن أن تكون الأعداد الصحيحة أكثر من أمر من حجم أسرع من نقطة العائمة. والمثير للدهشة أن التمثيل الصحيح يعمل بشكل أفضل من النقطة العائمة مع هذه الخوارزمية، بالإضافة إلى كونها أسرع. خطأ الجولة من الحساب العائم نقطة يمكن أن تنتج نتائج غير متوقعة إذا لم تكن حذرا. على سبيل المثال، تخيل إشارة عينة 10000 يتم تصفيتها باستخدام هذه الطريقة. وتحتوي العينة الأخيرة في الإشارة التي تمت تصفيتها على الخطأ المتراكم البالغ 000 10 إضافة و 000 10 طرح. يظهر هذا في إشارة الإخراج كإزاحة الانجراف. إنتيجرز لا تملك هذه المشكلة لأنه لا يوجد خطأ جولة في الحساب. إذا كان يجب استخدام نقطة عائمة مع هذه الخوارزمية، البرنامج في الجدول 15-2 يوضح كيفية استخدام تراكم الدقة المزدوجة للقضاء على هذا الانجراف. في الإحصاءات متوسط ​​متحرك بسيط هو خوارزمية تحسب المتوسط ​​غير المرجح من عينات ن الماضي. وعادة ما تسمى المعلمة n بحجم النافذة، لأن الخوارزمية يمكن اعتبارها نافذة تنزلق فوق نقاط البيانات. باستخدام صيغة عودية للخوارزمية، يتم تقليل عدد العمليات المطلوبة لكل عينة إلى إضافة واحدة، وطرح واحد وقسم واحد. منذ صياغة مستقلة عن حجم النافذة ن. التعقيد وقت التشغيل هو (1). أي ثابت. والصيغة العودية للمتوسط ​​المتحرك غير المرجح هي حيث يكون المتوسط ​​المتوسط ​​المتداول ويمثل x نقطة بيانات. لذلك، كلما تنزلق النافذة إلى اليمين، نقطة بيانات واحدة، الذيل، يتسرب ونقطة بيانات واحدة، الرأس، يتحرك في. التنفيذ تنفيذ المتوسط ​​المتحرك البسيط يجب أن يأخذ ما يلي في الاعتبار تهيئة الخوارزمية ما دام لم يتم ملء النافذة بالكامل مع القيم، فشل صيغة عودية. التخزين مطلوب الوصول إلى عنصر الذيل، والتي اعتمادا على تنفيذ يتطلب تخزين العناصر ن. يستخدم تطبيقي الصيغة المقدمة عندما يتم ملء النافذة بالكامل مع القيم، وبدلا من ذلك يتحول إلى الصيغة التي تقوم بتحديث الوسط من خلال إعادة حساب مجموع العناصر السابقة. لاحظ أن هذا يمكن أن يؤدي إلى عدم الاستقرار العددي بسبب الحساب العائم نقطة. وفيما يتعلق استهلاك الذاكرة، وتنفيذ يستخدم متكررات لتتبع الرأس والذيل العناصر. وهذا يؤدي إلى تنفيذ مع متطلبات الذاكرة الثابتة مستقلة عن حجم النافذة. هنا هو إجراء التحديث الذي ينزلق النافذة إلى اليمين. في معظم المجموعات تبطل العدادين عند تعديل المجموعة الأساسية. غير أن التنفيذ يعتمد على عدد صحيح من الباحثين. ولا سيما في التطبيقات القائمة على التدفق، تحتاج المجموعة الأساسية إلى تعديلها عند وصول عنصر جديد. طريقة واحدة للتعامل مع ذلك هو إنشاء بسيطة حجم دائري حجم ثابت من حجم N1 أن يبطل أبدا تكراراتها وإضافة عنصر بالتناوب واستدعاء التحول. أتمنى أن أستطيع معرفة كيفية تنفيذ هذا فعلا، حيث أن وظيفة الاختبار مربكة جدا بالنسبة لي 8230 هل أنا بحاجة لتحويل البيانات إلى صفيف، ثم تشغيل سما سما جديد سما (20، صفيف) لمدة 20 فترة سما كيف يمكنني التعامل مع شيفت () هل من الضروري تنفيذ منشئين. (آسف للارتباك). لا تحتاج don8217t لتحويل البيانات الخاصة بك إلى صفيف طالما البيانات الخاصة بك ينفذ IEnumerable1 ونوع تعداد مزدوج. بقدر ما يتعلق الأمر الرسائل الخاصة بك تحتاج إلى تحويل داتارو إلى شيء أن عدد لا يحصى من القيم المزدوجة. نهجك يعمل. شيفت، الشرائح نافذة موقف واحد إلى اليسار. لمجموعة البيانات من 40 القيم ويقول 20 سما فترة لديك 21 مواقف نافذة يناسب في (40 8211 20 1). في كل مرة تقوم فيها باستدعاء شيفت () يتم نقل الإطار إلى اليسار بموقف واحد، ويقوم متوسط ​​() بإرجاع سما لموقف النافذة الحالي. وهذا يعني، المتوسط ​​غير المرجح لجميع القيم داخل النافذة. بالإضافة إلى ذلك بلدي التنفيذ يسمح لحساب سما حتى لو لم يتم ملء نافذة بالكامل في البداية. لذلك في جوهر نأمل أن يساعد هذا. أي أسئلة أخرى حقوق النشر إشعار كريستوف هيندل و cheind. wordpress، 2009-2012. ممنوع الاستخدام غير المصرح به أندور الازدواجية من هذه المادة دون إذن صريح وخطي من هذه بلوق المؤلف صاحب أندور ممنوع منعا باتا. ويمكن استخدام مقتطفات وروابط، شريطة أن يتم إعطاء الائتمان الكامل والواضح لكريستوف هيندل و cheind. wordpress مع الاتجاه المناسب والمحدد للمحتوى الأصلي. المشاركات الاخيرة

No comments:

Post a Comment