با استفاده از iteratorها و توابع موجود در ، یک تابع در C++ بنویسید که یک std::vector از موقعیت‌های یک‌بعدی را گرفته و میانگین متحرک با پنجرهٔ اندازهٔ 3 (هر عنصر با خودش و همسایهٔ چپ و راست) را با استفاده از std::next و std::prev محاسبه و یک وکتور جدید خروجی دهد.

5.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 03:03

0.0

برای حل، از #include به‌علاوه و استفاده کنید؛ با گرفتن iterator به هر عنصر، با std::prev و std::next همسایه‌ها را دسترسی‌پذیر کنید و میانگین (با توجه به مرزها برای اولین و آخرین عنصر) را حساب کرده و در وکتور نتیجه قرار دهید. این تکنیک در بازی‌سازی برای نرم‌سازی مسیرها یا در محاسبات عددی برای فیلتر کردن نویز مفید است — دقت کنید که از بررسی مرزها و جلوگیری از خارج شدن از محدوده هنگام استفاده از iteratorها استفاده کنید.

توسط پژوهشگر در 202 روز قبل ساعت 03:03
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 202 روز قبل ساعت 07:39

استفاده از iteratorها با std::prev و std::next برای دسترسی به همسایه‌ها در یک std::vector راهی کارآمد برای پیاده‌سازی میانگین متحرک با پنجرهٔ ۳ است. برای مرزها باید از بررسی معتبر بودن iterators و جلوگیری از خروج از محدوده استفاده کرد، مثلاً با شرط‌هایی که آغاز یا پایان بازه را در نظر بگیرند. به‌هر عنصر می‌توانید با توجه به وجود یا نبود هم‌جواران چپ و راست، میانگین را با تعداد عناصر معتبر محاسبه کنید تا از ناپایداری مقادیر در ابتدای و انتهای آرایه جلوگیری شود. این روش با وضوح کد و حفظ کارایی، در بازی‌سازی برای صاف‌سازی مسیرها یا فیلترینگ نویز مفید است.

گزارش

1 پاسخ

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

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