Информация об изменениях

Сообщение Re[17]: класс Config от 27.01.2019 14:55

Изменено 27.01.2019 16:55 kov_serg

Re[17]: класс Config
Здравствуйте, Marty, Вы писали:

M>Сколько дашь?

Ни сколько
#include <math.h>

struct tetrahedron {
    double a,b,c,ea,eb,ec;
    double volume() const {
        double q[6]={a*a,b*b,c*c,ea*ea,eb*eb,ec*ec};
        return sqrt(
             q[4]*q[5]*q[1]+q[4]*q[1]*q[3]+q[2]*q[5]*q[1]+q[2]*q[3]*q[5]
            +q[0]*q[3]*q[5]+q[0]*q[1]*q[3]-q[0]*q[1]*q[2]-q[1]*q[3]*q[5]
            -q[1]*q[4]*q[4]+q[4]*q[1]*q[2]+q[4]*q[0]*q[3]+q[2]*q[5]*q[4]
            +q[2]*q[0]*q[3]-q[2]*q[3]*q[4]+q[4]*q[0]*q[1]+q[0]*q[5]*q[2]
            -q[0]*q[5]*q[4]-q[5]*q[2]*q[2]-q[0]*q[0]*q[3]-q[0]*q[3]*q[3]
            -q[2]*q[5]*q[5]-q[4]*q[1]*q[1]
        )/12;
    }
};

#include <stdio.h>

int main(int argc,char** argv) {
    tetrahedron t;
    t.a=1;  t.b=1;  t.c=1;
    t.ea=1; t.eb=1; t.ec=1;
    double V=t.volume(), V0=sqrt(2)/12;
    printf("V=%.5f (%.5f)\n",V,V0);
    return 0;
}
Re[17]: класс Config
Здравствуйте, Marty, Вы писали:

M>Сколько дашь?


#include <math.h>

struct tetrahedron {
    double a,b,c,ea,eb,ec;
    double volume() const {
        double A=a*a, B=b*b, C=c*c, X=B+C-ea*ea, Y=A+C-eb*eb, Z=A+B-ec*ec;
        return sqrt(4*A*B*C-A*X*X-B*Y*Y-C*Z*Z+X*Y*Z)/12;
    }
};

#include <stdio.h>

int main(int argc,char** argv) {
    tetrahedron t;
    t.a=1;  t.b=1;  t.c=1;
    t.ea=1; t.eb=1; t.ec=1;
    double V=t.volume(), V0=sqrt(2)/12;
    printf("V=%.5f (%.5f)\n",V,V0);
    return 0;
}