#include <iostream>
#include <cstdlib>
#include <limits>
using namespace std;
// 获得0-1之间的随机数
double get_random_num ()
{
return (double)rand () / RAND_MAX ;
}
// 用随机投点法计算 PI
double darts (int n)
{
int k = 0 ;
for (int i = 0; i < n; ++ i) {
double x = get_random_num() ;
double y = get_random_num() ;
if ((x * x + y * y) <= 1.0) {
++ k ;
}
}
return (4 * k) / (double)n ;
}
int main()
{
cout << darts (200000000) << endl ;
}
随机投点法计算圆周率
结果还是很准的
1. RAND_MAX在cstdlib中
2.rand()在cstdlib中,随机产生一个整数, 每次执行产生的是相同的
3. srand(); 常用srand((unsigned)time(NULL));