[ create a new paste ] login | about

Link: http://codepad.org/Gddd2R68    [ raw code | output | fork ]

C++, pasted on May 28:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include "time.h"
#include "iostream"

double dist3(double x, double y, double z){
    return sqrt(x*x+y*y+z*z);
}

int main() {

srand(time(0));

double R1 = 1.0;
double R2 = 0.8;
double Cx = 0.7;

double Fx=0,Fy=0,Fz=0,dFx,dFy,dFz, a, x, y, z;
int i, n, k=0;

n = 100000;
for(i = 0 ; i < n; i++){
    x = float(rand())/RAND_MAX*2*R1 - R1;
    y = float(rand())/RAND_MAX*2*R1 - R1;
    z = float(rand())/RAND_MAX*2*R1 - R1;

        if ( dist3(x,y,z)<=R1 && dist3(x,y,z)>=R2 ) 
        {
            a= dist3(x-Cx,y,z); 
            dFx = (x-Cx)/pow(a,3); 
            dFy = y/pow(a,3);
            dFz = z/pow(a,3);
            Fx = Fx+dFx;
            Fy = Fy+dFy;
            Fz = Fz+dFz;
        }
    }
    printf("%3.3f %3.3f %3.3f\n",Fx/n,Fy/n,Fz/n);
    return 0;
}


Output:
1
0.003 0.004 -0.005


Create a new paste based on this one


Comments: