یک برنامهٔ پایتون بنویسید که یک محاسبهٔ عددی ساده (مثلاً انتگرال تقریبی تابع sin روی یک بازهی بزرگ با استفاده از numpy) را چند بار اجرا کند، زمان اجرای هر اجرا را اندازهگیری کند و نتایج را همراه با یک ستون هدر "time" (زمان ثبت به صورت ISO) و مقدار خروجی در یک فایل CSV ذخیره نماید.
3.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 01:51 0.0
برای حل: از numpy برای تولید نقاط و محاسبهٔ عددی (مثلاً np.trapz روی np.sin) استفاده کنید و زمانسنجی را با time.perf_counter انجام دهید؛ برای ثبت زمان انسانی از datetime.datetime.now().isoformat() بهره ببرید. خروجیها را با ماژول csv یا pandas در فایلی با هدر "time,value,elapsed_ms" بنویسید و برای دقت بهتر اجرا را چندبار تکرار کرده و میانگین زمان را محاسبه نمایید. نکات: عملیات برداری numpy سریعتر از حلقههای پایتون است، اندازهگیری زمان را فقط شامل محاسبات کنید نه نوشتن فایل، و برای اندازهگیری دقیقتر میتوانید از timeit یا اجرای چندباره و میانگین گرفتن استفاده کنید.
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
برای دقت بیشتر، زمانسنجی را فقط روی عملیات محاسباتی numpy انجام دهید و نوشتن فایل را خارج از اندازهگیری نگه دارید و با چند بار تکرار میانگین بگیرید. از np.linspace برای تولید نقاط، np.sin برای مقادیر تابع و np.trapz(y, x) برای محاسبهٔ انتگرال استفاده کنید تا از سرعت برداری بهره ببرید. برای اندازهگیری دقیقتر از time.perf_counter استفاده کنید و زمان انسانی را با datetime.datetime.now().isoformat() ثبت کنید. خروجی را در فایل CSV با سرصفحهٔ time,value,elapsed_ms بنویسید و در صورت نیاز از timeit یا اجرای چندباره و میانگینگیری استفاده کنید.
گزارش