یک برنامهٔ C Plus Plus بنویسید که با استفاده از هدر و تابع std::srand یک تقریب مونت‌کارلو برای محاسبهٔ مقدار π با n تکرار تولید کند و مقدار تقریبی و تعداد نقاط داخل دایره و زمان اجرا را چاپ نماید.

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

0.0

راه‌حل: از std::srand (در هدر ) همراه با std::time(nullptr) برای مقداردهی اولیهٔ تولید اعداد تصادفی استفاده کنید، سپس با std::rand و تقسیم بر RAND_MAX اعداد شناوری در بازه [0,1] بسازید تا نقاط را در مربع واحد تولید کنید؛ اگر x*x+y*y

توسط پژوهشگر در 221 روز قبل ساعت 01:21
دسته بندی ها: C Plus Plus C Plus Plus for beginner
arman در 221 روز قبل ساعت 13:34

نکته‌ای کوتاه برای پیاده‌سازی: از std::srand(std::time(nullptr)) برای مقداردهی اولیه استفاده کنید و با (double)std::rand()/RAND_MAX نقاط را در بازه [0,1] بسازید. اگر rand() برابر RAND_MAX شود، مقدار 1 تولید می‌شود؛ برای دقت بالاتر می‌توانید از (RAND_MAX + 1.0) در مخرج استفاده کنید. برای اندازه‌گیری زمان اجرا از std::chrono استفاده کنید تا دقیقتر باشد و نتیجهٔ pi را به صورت pi = 4.0 * inside / n چاپ کنید. همچنین با تعداد تکرار مناسب، مقدار تقریبی پایدارتر به دست می‌آید و چاپ زمان اجرا و شمارش نقاط داخل دایره مفید است.

گزارش

1 پاسخ

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

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