یک برنامه C بنویسید که مقدار تقریبی عدد π را با روش انتگرالگیری عددی (مثلاً قانون میانه یا مجموع Riemann) محاسبه کند و زمان اجرای بخش محاسباتی را با استفاده از تابع difftime از هدر time.h گزارش دهد.
8.0 بازدید آخرین ویرایش در 220 روز قبل ساعت 03:09 0.0
برای حل، از نوع double و یک حلقه با N بخش استفاده کنید تا انتگرال تابع 4/(1+x^2) روی بازه [0,1] را با روش میانه تقریب بزنید؛ قبل از شروع محاسبه زمان شروع را با time(&start) و پس از پایان با time(&end) بگیرید و اختلاف را با difftime(end, start) محاسبه و چاپ کنید. نکات مفید: مقدار N را قابل تنظیم بگذارید تا دقت و زمان اجرا را ببینید، از -O2 هنگام کامپایل برای بهبود کارایی استفاده کنید و توجه کنید که difftime دقت بر حسب ثانیه است (برای اندازهگیریهای خیلی کوتاه، تکرار محاسبه یا استفاده از روشهای دیگر زمانسنجی پیشنهاد میشود).
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکته کلیدی این تمرین استفاده از double و یک حلقه با N بخش است تا با روش میانه مقدار π را از طریق انتگرال 4/(1+x^2) روی [0,1] تقریب بزنید. difftime(end, start) زمان را بر حسب ثانیه برمیگرداند، بنابراین برای اندازهگیریهای دقیقتر زمانهای خیلی کوتاه به سراغ clock_gettime یا clock بروید. مقدار N را قابل تنظیم بگذارید تا بتوانید توازن بین دقت و زمان اجرا را ببینید و با کامپایل با -O2 کارایی بهتری حاصل میشود. همچنین توجه کنید که هر چه N بزرگتر باشد تقریب به π به دقت بهتری میرسد، اما زمان اجرا هم افزایش مییابد.
گزارش