các bước

1, tạo random số từ 0-1, cho vào 2 mảng X,Y, tất cả các điểm này thuộc hình vuông đơn vị

2, so sánh xem cặp tọa độ trong X,Y có thuộc hình tròn đơn vị hay k

3, pi = 4* ( số điểm thuộc hình tròn / số điểm thuộc hình vuông)

có thể bỏ qua bước tạo mảng, khi vừa có 1 cặp số thì ta sẽ so sánh ngay nó thuộc hình tròn k, như thế sẽ tiết kiệm bộ nhớ

code

Mã:

#include<stdio.h>

#include<ctime>

#include<stdlib.h>

#include<math.h>

void taotoado(int n,float X[],float Y[])

{

srand(time(NULL));

for ( int i = 1 ; i <= n ; i ++)

{

X[i] = (float)rand()/(float)RAND_MAX;

Y[i] = (float)rand()/(float)RAND_MAX;

}

}

int thuochinhtron(int n,float X[],float Y[])

{

int sodiem=0;

for ( int i = 1 ; i <= n ; i ++)

{

if ( sqrt ( pow( (X[i]-0.5),2 ) + pow( (Y[i]-0.5),2 ) ) <= (0.5))

sodiem = sodiem+1;

}

return sodiem;

}

int main()

{

long int n,sodiem;

float X[100000],Y[100000],pi;

scanf("%d",&n);

taotoado(n,X,Y);

pi = (float)4*((float)thuochinhtron(n,X,Y)/(float)n);

printf("pi = %f",pi);

}

số điểm n càng cao thì pi càng chính xác khoản trên 50k
Tính số PI dựa vào phương pháp xác xuất thống kê YH5BAEAAAAALAAAAAABAAEAAAIBRAA7