rendered paste body#include <math.h>double gauss_lim_inf = -10.0, /* limita inferioara pentru simulare */ gauss lim_sup = 10.0; /* limita superioara pentru simulare *//* numarul de bucati in care va fi impartit intervalul */int gauss_nr_intervale = 1000; #define SQR(x) ((x)*(x))#define MIN(a, b) ( (a)<(b) ? (a) : (b) )double aria_comuna( double a1, double s1, /* valorile pentru prima distributie */ double a2, double s2, /* valorile pentru a doua distributie */ ){ int i; double A, val1, val2, dim_int, x; /* aria comuna */ A = 0.0; /* dimensiunea unui interval */ dim_int = (gauss_lim_sup - gauss_lim_inf) / gauss_nr_intervale; for (i=0; i<gauss_nr_intervale; i++) { /* punctul in care calculam distributiile */ x = gauss_lim_inf + i*dim_int; /* valoarea pentru prima distributie */ val1 = 1 / (s1 * sqrt(2*M_PI)) * exp( -1/2 * SQR(((x-a1)/s1)) ); /* valoarea pentru a doua distributie */ val2 = 1 / (s1 * sqrt(2*M_PI)) * exp( -1/2 * SQR(((x-a2)/s2)) ); A += dim_int * MIN(val1, val2); } return 2*A-1;}