با استفاده از iteratorهای موجود در هدر در C++ یک برنامه بنویسید که میانگین متحرک (moving average) با اندازه پنجره ثابت را روی یک وکتور از اعداد اعشاری محاسبه کند و نتایج را در یک وکتور خروجی ذخیره نماید.
1.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:40 0.0
برای حل، از std::vector برای دادهها و خروجی استفاده کنید و با iteratorها (مانند std::next و std::distance از هدر ) روی بردار پیمایش کنید؛ برای جمع کردن عناصر هر پنجره میتوانید از std::accumulate (هدر ) استفاده کرده و نتایج را با std::back_inserter یا push_back در وکتور خروجی قرار دهید. این مسئله در بازیسازی برای هموارسازی ورودیها و در محاسبات علمی برای صافسازی سیگنالها کاربرد دارد—نکته عملی: موقعیتهای مرزی را مشخص کنید (مثلاً فقط پنجرههای کامل را حساب کنید یا از padding استفاده نمایید) و از iteratorها برای دسترسی بدون اندیسدهی صریح بهره ببرید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای پیادهسازی میانگین متحرک با پنجره ثابت روی وکتور از iteratorها مانند std::next و std::distance استفاده کنید تا بدون اندیسگذاری صریح پیمایش کنید. میتوانید از std::accumulate برای هر پنجره استفاده کنید یا برای کارایی بیشتر با نگه داشتن یک مجموع اجرایى (running sum) زمان کل را به O(n) ببرید. نکته مرزی: تصمیم بگیرید که فقط پنجرههای کامل را محاسبه کنید یا از padding استفاده کنید تا خروجی با همان طول ورودی باشد. خروجی را با std::back_inserter یا push_back در وکتور خروجی جمعآوری کنید تا نگه داشتن ظرفیت بهینه باشد.
گزارش