یک برنامهٔ 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
1 پاسخ
جدید ترین قدیمی ترین بالاترین امتیاز پاسخ های من
در حال بارگیری...
برای ارسال پاسخ باید با حساب کاربری وارد شوید.
ورود به حساب کاربری
نکتهای کوتاه برای پیادهسازی: از 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 چاپ کنید. همچنین با تعداد تکرار مناسب، مقدار تقریبی پایدارتر به دست میآید و چاپ زمان اجرا و شمارش نقاط داخل دایره مفید است.
گزارش