(*Dwa zestawy liczb pseudolosowych o rozkładzie gaussowskim wygenerowane z dwóch zestawów o rozkładzie jednostajnym metodą Boxa-Mullera.*)

(*Można pokazać, że y1 i y2 to dwa niezależne rozkłady gaussowskie, licząc jakobian.*)

X1=Exp[-(Y1^2+Y2^2)/2];
X2=1/(2Pi)*ArcTan[Y2/Y1];
X={X1,X2};
Y={Y1,Y2};
Together[Det[D[X,{Y}]]]

(*Implementacja metody.*)

y1:=Sqrt[-2*Log[RandomReal[]]]*Cos[2Pi RandomReal[]]

y2:=Sqrt[-2*Log[RandomReal[]]]*Sin[2Pi RandomReal[]];

L=10000;

(*Równie dobrze można wybrać zestaw y2.*)

dist=Table[y1,{i,1,L}];
dist2=Table[RandomVariate[UniformSumDistribution[12]]-6,{i,1,L}];
dist3=Table[RandomVariate[NormalDistribution[]],{i,1,L}];

Histogram[dist,{0.1}]

Median[dist]

Mean[dist]

Variance[dist]

StandardDeviation[dist]

(*Kurtoza wygląda sensownie*)

Kurtosis[dist]

Skewness[dist]

PearsonChiSquareTest[dist]

(*Test K-S daje wyższe wartości, niż poprzednio. Jego wynik nie powinien też maleć wraz ze zwiększaniem liczby punktów.*)

KolmogorovSmirnovTest[dist]