یک برنامهٔ C++ بنویسید که با استفاده از std::srand از و روش مونت‌کارلو مقدار تقریبی عدد π را با N نمونهٔ تصادفی محاسبه کند.

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

0.0

برای حل، ابتدا با std::srand(time(nullptr)) تولیدکنندهٔ اعداد تصادفی را مقداردهی اولیه کنید (نیاز به دارید)، سپس با std::rand() و تقسیم بر RAND_MAX دو عدد تصادفی در بازهٔ [0,1) بسازید و تعداد نقاطی که داخل ربع‌دایرهٔ واحد قرار می‌گیرند بشمارید. نسبت نقاط داخل به کل نمونه‌ها را در 4 ضرب کنید تا تقریب π به‌دست آید. نکات: برای دقت بهتر N را بزرگ انتخاب کنید و از نوع‌های صحیح بزرگ (مانند long long) برای شمارش استفاده کنید؛ برای کاربردهای HPC می‌توانید حلقه‌ها را بعداً با OpenMP یا توزیع کار موازی کنید تا سرعت و دقت با نمونه‌های بیشتر افزایش یابد.

توسط پژوهشگر در 201 روز قبل ساعت 03:20
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arash در 201 روز قبل ساعت 06:46

برای پیاده‌سازی مونت کارلو، با std::srand(time(nullptr)) مقداردهی اولیه تصادفی انجام بدهید و با std::rand() دو عدد تصادفی در بازه [0,1) بسازید. شمارش نقاط داخل ربع دایرهٔ واحد را با یک متغیر صحیح بزرگ مانند long long انجام دهید. نسبت این نقاط به کل نمونه‌ها را در 4 ضرب کنید تا مقدار تقریبی π به دست آید. برای افزایش دقت و کارایی می‌توانید N را بزرگ‌تر بگیرید و از OpenMP یا توزیع کار برای موازی کردن حلقه‌ها استفاده کنید.

گزارش

1 پاسخ

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

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