با استفاده از 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ها برای دسترسی بدون اندیس‌دهی صریح بهره ببرید.

توسط پژوهشگر در 221 روز قبل ساعت 01:40
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 221 روز قبل ساعت 12:26

برای پیاده‌سازی میانگین متحرک با پنجره ثابت روی وکتور از iteratorها مانند std::next و std::distance استفاده کنید تا بدون اندیس‌گذاری صریح پیمایش کنید. می‌توانید از std::accumulate برای هر پنجره استفاده کنید یا برای کارایی بیشتر با نگه داشتن یک مجموع اجرایى (running sum) زمان کل را به O(n) ببرید. نکته مرزی: تصمیم بگیرید که فقط پنجره‌های کامل را محاسبه کنید یا از padding استفاده کنید تا خروجی با همان طول ورودی باشد. خروجی را با std::back_inserter یا push_back در وکتور خروجی جمع‌آوری کنید تا نگه داشتن ظرفیت بهینه باشد.

گزارش

1 پاسخ

جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من

در حال بارگیری...
ورود به حساب کاربری