Нужна помощь с кодом на программу находящую число ПИ по второй формуле Лейбница(Pi=2*SquareRootOf3*(сумма от 0 до бесконечности(pow(-1,i)/pow(3,k)*(2*k+1)
Вот мой код(что-то в нем не так), нужно доделать/исправить, сам пол дня занимался этой хренью, уже глаза болят.
#include
#include
#include
#include
#include
int main(int argc,char* argv[])
{
double buf,Pi,PI=3.1415927,SquareRootOf3=1.73205,m=1000,N;
int rank,size,i1,i2,i,K;
MPI_Init(&argc,&argv);
MPI_Status status;
MPI_Comm_rank(MPI_COMM_WORLD,&rank);
MPI_Comm_size(MPI_COMM_WORLD,&size);
K=m/(size-1);
if (rank!=0)
{
i1=K*(rank-1);
i2=K*rank;
for (i=i1;i {
N=N+(pow(-1,i)/(pow(3,i)*(2*i+1)));
}
MPI_Send(&N,size-1,MPI_DOUBLE,0,rank,MPI_COMM_WORLD);
}
if (rank==0)
{
MPI_Recv(&N,size-1,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);
Pi=2*SquareRootOf3*buf;
printf("Pi is %d\n",Pi);
}
MPI_Finalize();
return(0);
}
Заплачу:
Auspicious Frost Owl's Beacon(60 центов)+мелочь с киви(примерно 40 рублей), может еще чего подкину.
Нажмите, чтобы раскрыть...