یک برنامه C Plus Plus بنویسید که n جفت مقدار (مقدار_تخمینی، مقدار_واقعی) را از ورودی بخواند و حداقل خطای مطلق (|مقدار_تخمینی - مقدار_واقعی|) را با استفاده از std::min محاسبه و نمایش دهد

2.0 بازدید آخرین ویرایش در 202 روز قبل ساعت 02:24

0.0

برای حل، از بردارها برای نگهداری داده‌ها و از یک حلقه برای محاسبه خطای مطلق هر جفت استفاده کنید؛ مقدار اولیه حداقل را با std::numeric_limits::infinity() تنظیم کرده و در هر تکرار با std::min (در هدر ) آن را به‌روزرسانی کنید. برای دقت عددی از نوع double استفاده کنید و برای کار با داده‌های بزرگ حافظه را با reserve مدیریت کنید؛ در محیط‌های HPC می‌توان حلقه‌ها را با OpenMP موازی‌سازی کرد و سپس یک کاهش (reduction) برای یافتن مینیمم انجام داد.

توسط پژوهشگر در 202 روز قبل ساعت 02:24
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 202 روز قبل ساعت 09:50

نکتهٔ کوتاه: برای کارایی حافظه و دقت، از reserve(n) روی بردارها استفاده کنید و از نوع double برای داده‌ها بهره ببرید. برای مقدار اولیهٔ حداقل از std::numeric_limits<double>::infinity() استفاده کنید تا در مقایسه با هر مقدار نتیجهٔ صحیحی به دست آید. در حلقهٔ محاسبهٔ خطا از std::abs و std::min برای به‌روزرسانی مقدار حداقل بهره ببرید و اطمینان حاصل کنید داده‌ها به‌درستی خوانده می‌شوند. در محیط‌های HPC می‌توان حلقه‌ها را با OpenMP موازی کرد و از reduction برای یافتن مینیمم استفاده نمود.

گزارش

1 پاسخ

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

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