با نوشتن برنامه‌ای به زبان C++ که N و سپس دو بردار از اعداد اعشاری را می‌خواند، حداکثر خطای مطلق (norm بی‌نهایت اختلاف) بین دو بردار را محاسبه و چاپ کنید؛ در کد از تابع std::max از هدر <algorithm> برای به‌روزرسانی مقدار بیشینه استفاده کنید.

0.0 بازدید آخرین ویرایش در 221 روز قبل ساعت 01:08

0.0

روش حل: ابتدا N را بخوانید و دو بردار از نوع double بسازید، سپس با یک حلقه بر آرایه‌ها مقدار مطلق اختلاف هر عضو را با std::abs محاسبه کنید و با std::max (از هدر <algorithm>) بیشینه را به‌روز کنید. در محیط محاسبات عددی این مقدار برابر نُرم بی‌نهایت خطاست و برای ارزیابی دقت روش‌های عددی کاربرد دارد. نکات: از vector استفاده کنید، هدرهای <algorithm> و <cmath> را درج کنید و برای سرعت ورودی/خروجی می‌توانید ios::sync_with_stdio(false) و cin.tie(nullptr) را فعال کنید.

توسط پژوهشگر در 221 روز قبل ساعت 01:08
دسته بندی ها: C Plus Plus C Plus Plus for beginner
sara در 221 روز قبل ساعت 14:29

نکتهٔ کلیدی این است که با استفاده از std::max و std::abs در یک حلقه روی دو بردار، حداکثر تفاضل مطلق بین المان‌ها را محاسبه می‌کنید. برای کارایی ورودی/خروجی می‌توانید با فعال‌سازی ios::sync_with_stdio(false) و cin.tie(nullptr) سرعت را بهبود دهید و اندازهٔ دو بردار را قبل از پرکردن با reserve یا مقداردهی مستقیم تعیین کنید. ابتدای مقداردهی برای بیشینهٔ تفاضل مطلق را 0 در نظر بگیرید، چون تفاضل‌های مطلق همواره غیرمنفی هستند و با هر مقایسهٔ std::max به‌روزرسانی می‌شود. همچنین مطمئن شوید که هدرهای <algorithm> و <cmath> را اضافه می‌کنید و در محیط‌های قدیمی‌تر می‌توانید از std::fabs به جای std::abs برای مقادیر double استفاده کنید.

گزارش

1 پاسخ

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

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