distribution = BinormalDistribution[{0,0},{1,1},0];

probInRing[r0_ , w_]:=(E^(-((r0^2)/2)))-(E^(-(1/2) (((r0+w))^2)));

plot = DensityPlot[PDF[distribution][{x , y}] , {x , -3 , 3} , {y , -3 , 3},ColorFunction->GrayLevel];

casesInRing[r0_ , w_ , data_]:=Count[data , {x_ , y_}/;(x^2)+(y^2)<(((r0 + w))^2)&&(x^2)+(y^2)>(r0^2)];

casesInRect[x0_ , Δx_ , y0_ , Δy_ , data_]:=Count[data , {x_ , y_}/;x<x0+Δx&&x>x0&&y<y0+Δy&&y>y0];

conditionalCasesInRect[x0_ , Δx_ , y0_ , Δy_ , data_]:=
Module[{inYSliver , inXSliverYSliver},
inYSliver = Cases[data , {x_ , y_}/;y<y0+Δy&&y>y0];
inXSliverYSliver = Cases[inYSliver , {x_ , y_}/;x<x0+Δx&&x>x0];
Show[ListPlot[inYSliver , PlotStyle->Blue] , ListPlot[inXSliverYSliver , PlotStyle->Red] , PlotLabel->"P(czerwony|niebieski) : "<>ToString[((Dimensions[inXSliverYSliver][[1]])/(Dimensions[inYSliver][[1]]))//N ] , Axes->False , Frame->True , PlotRange->{{-3 , 3},{-3 , 3}} , AspectRatio->1]
];

nData = 10000;

data = RandomVariate[distribution , nData];

(*FGP(x , y):*)

PDF[distribution][{x , y}]

(*--------------------------------------------------------*)

(*ROZKŁAD NORMALNY 2D*)

(*ciemny kolor - mała FGP*)

(*jasny kolor - dużą FGP*)

(*niebieskie punkty - losowane zgodnie z FGP*)

(*n - liczba wylosowanych punktów*)

(*x0 , y0 - pozycja dolnego lewego rogu czerwonego obszaru*)

(*Δx , Δy - szerokość czerwonego obszaru*)

(*Pzliczenia - prawdopodobieństwo policzone z wykorzystaniem liczby zliczeń w czerwonym obszarze*)

(*Pcalka - prawdopodobieństwo policzone z wykorzystaniem całki FGP po czerwonym obszarze*)

(*--------------------------------------------------------*)

Manipulate[Show[plot , Graphics[{Blue ,PointSize[Tiny],Point/@data[[1;;n]]}] ,Graphics[{Red , Opacity[0.5] , Rectangle[{x0 , y0} ,{x0+Δx , y0 + Δy }]}],PlotLabel->"(Subscript[P, zliczenia]) = "<>ToString[casesInRect[x0 , Δx , y0 , Δy, data[[1;;n]]]]<> "/"<>ToString[n]<>"="<>ToString[N[casesInRect[x0 , Δx , y0 , Δy , data[[1;;n]]]/n]]<>"  (Subscript[P, całka]) =  "<>ToString[Integrate[PDF[distribution][{x , y}] , {x , x0 , x0 + Δx} , {y , y0 , y0 + Δy}]]] , {n , 1 , Dimensions[data][[1]] , 1} , {{x0 , 1} , 0.001 , 3} , {{Δx , 0.5} , 0.001 , 1} , {{y0 , 1} , 0.001 , 3} , {{Δy , 0.5} , 0.001 , 1}]

nData = 100000;

data = RandomVariate[distribution , nData];

x0 = 1;
Δx = 1.4;
y0 = -1;
Δy = 1.4;

data = RandomVariate[distribution , nData];

(*--------------------------------------------------------*)

(*ROZKŁAD NORMALNY 2D*)

(*P(czerwony|niebieski) - prawdopodobieństwo warunkowe trafienia w czerwony obszar pod warunkiem trafienia w niebieski policzone na podstawie liczby trafień w odpowiednie obszary.*)

(*--------------------------------------------------------*)

conditionalCasesInRect[x0 , Δx , y0 , Δy , data]

(*--------------------------------------------------------*)

(*ROZKŁAD NORMALNY 2D*)

(*blue - prawdopodobieństwo trafienia w niebieski pasek (y∈(y0 , y0 + Δy)) policzone z wykorzystaniem całki (PDF[distribution][{x , y}] to FGP)*)

(*red - prawdopodobieństwo trafienia w czerwony prostokąt (x∈(x0 , x0 + Δx) , y∈(y0 , y0 + Δy)) policzone z wykorzystaniem całki (PDF[distribution][{x , y}] to FGP)*)

(*pWarunkowe - prawdopodobieństwo warunkower*)

(*--------------------------------------------------------*)

(*niebieski pasek:*)

blue = NIntegrate[PDF[distribution][{x , y}] , {x , -∞ , ∞} , {y , y0 , y0 + Δy}]

(*czerwony*)

red = NIntegrate[PDF[distribution][{x , y}] , {x , x0 , x0 + Δx} , {y , y0 , y0 + Δy}]

pWarunkowe = red/blue

(*--------------------------------------------------------*)

(*ROZKŁAD NORMALNY 2D*)

(*fgp - Funkcja Gęstości prawdopodobieństwa*)

(*fBrz - Gestość prawdopodobieństwa brzegowego*)

(*red - prawdopodobieństwo trafienia w czerwony prostokąt policzone z wykorzystaniem całki (PDF[distribution][{x , y}] to FGP)*)

(*pWarunkowe1 - prawdopodobieństwo warunkowe, ale UWAGA, co z szerokościa paska?*)

(*--------------------------------------------------------*)

gfp = PDF[distribution][{x , y}]

(*co tu sie dzieje ?*)

fBrz = Integrate[PDF[distribution][{x , y}] , {x , -∞ , ∞} ]

(*UWAGA: x , y niezależne! stąg ten wynik będzie działał niezależnie od szerokości niebieskiego paska!*)

pWarunkowe1 = NIntegrate[(((E^((1/2) (-(x^2)-(y0^2))))/(2 π))/((E^(-((y0^2)/2)))/(Sqrt[2 π]))) , {x , x0 , x0 + Δx} ]

(**)

data = RandomVariate[distribution , nData];

(*--------------------------------------------------------*)

(*ROZKŁAD NORMALNY 2D*)

(*n - liczba wylosowanych punktów*)

(*r0 - wewnętrzny promień czerwonego pierścienia*)

(*w - szerokość czerwonego pierścienia*)

(*Pzliczenia - prawdopodobieństwo policzone z wykorzystaniem liczby zliczeń w czerwonym obszarze*)

(*Pcalka - prawdopodobieństwo policzone z wykorzystaniem całki FGP po czerwonym obszarze*)

(*--------------------------------------------------------*)

Manipulate[Show[plot , Graphics[{Blue ,PointSize[Tiny],Point/@data[[1;;n]]}] ,Graphics[{Red , Opacity[0.5] , Annulus[{0,0} , {r0 , r0+w}]}],PlotLabel->"(Subscript[P, zliczenia]) = "<>ToString[casesInRing[r0 , w , data[[1;;n]]]]<> "/"<>ToString[n]<>"="<>ToString[N[casesInRing[r0 , w , data[[1;;n]]]/n]]<>"  (Subscript[P, całka]) = "<>ToString[probInRing[r0 , w]]] , {n , 1 , Dimensions[data][[1]] , 1} , {{r0 , 1} , 0.001 , 3} , {{w , 0.5} , 0.001 , 1}]