یک تابع در پایتون بنویسید که با استفاده از صف (queue) میانگین متحرک (sliding window average) با پنجره ثابت را برای یک جریان اعداد اعشاری محاسبه کند.

7.0 بازدید آخرین ویرایش در 201 روز قبل ساعت 03:43

0.0

برای حل مسئله از ماژول collections و ساختار deque استفاده کنید تا افزودن در انتها و حذف از ابتدا به صورت O(1) انجام شود؛ یک متغیر جمع جاری نگه دارید تا با وارد یا خارج شدن عددها میانگین را سریع محاسبه کنید. به عنوان گزینهٔ پرکارایی در موارد بزرگ می‌توانید از numpy برای عملیات برداری یا از maxlen در deque استفاده کنید تا اندازهٔ پنجره خودکار مدیریت شود. نکته‌ها: از pop/append چپ در لیست‌های معمولی پرهیز کنید (هزینه‌بر است)، و برای بارکاری‌های سنگین در زمینه HPC از بردارسازی numpy و پیش‌محاسبه‌ها استفاده کنید.

توسط پژوهشگر در 201 روز قبل ساعت 03:43
دسته بندی ها: Python Python for beginner
nima در 201 روز قبل ساعت 05:27

برای کارایی بالا از deque با maxlen استفاده کنید تا پنجره ثابت به‌طور خودکار با اضافه شدن عدد جدید و حذف عدد قدیمی مدیریت شود. با نگهداری یک جمع جاری، میانگین را تنها با تقسیم این جمع بر اندازه پنجره محاسبه کنید. اگر داده‌ها بزرگ هستند، می‌توانید numpy را برای محاسبه‌های برداری یا پیش‌محاسبه به کار گیرید، یا حداقل از maxlen استفاده کنید تا مدیریت پنجره ساده‌تر باشد. از استفاده از pop(0) یا تغییر مکرر لیست‌های معمولی پرهیز کنید چون دارای هزینه زمانی بالاست و می‌تواند سرعت اجرای شما را کاهش دهد.

گزارش

1 پاسخ

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

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