题目
:小明向他的女朋友仙仙求婚,在求婚戒指上刻了一个大大的爱心。仙仙看到爱心想考验一下小明,出了一道题。方程
(x2+y2−1)2−x2y2=0
能画出一个美丽的爱心,现在给定一个点
(x,y)
,其中,
X∼N((μ1,σ21)
,
Y∼N((μ2,σ22)
,这个点在这个爱心里面的概率是多少,精确到0.1(小数点后保留一位小数,比如0.1, 0.2等)
import java.util.*;
public class main {
public static double genGaussValue(double mu, double sigma) {
double random = new Random().nextGaussian();
return random * sigma + mu;
}
public static boolean isInside(double x, double y) {
double xx = x * x;
double yy = y * y;
double tmp = xx + yy - 1;
return (tmp * tmp - xx * yy) < 0 ? true : false;
}
public static double learnCurve(double mu1, double sigma1, double mu2, double sigma2) {
int N = 10000;
int count = 0;
for (int i = 0; i < N; i++) {
double v1 = genGaussValue(mu1, sigma1);
double v2 = genGaussValue(mu2, sigma2);
if (isInside(v1, v2)) {
count++;
}
}
return count * 1.0 / N;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
double mu1 = sc.nextDouble();
double sigma1 = sc.nextDouble();
double mu2 = sc.nextDouble();
double sigma2 = sc.nextDouble();
double res = learnCurve(mu1, sigma1, mu2, sigma2);
System.out.printf("%.1f", res);
}
}