Red de conocimiento informático - Material del sitio web - ¿Cómo encontrar la raíz de 2 usando un algoritmo probabilístico?

¿Cómo encontrar la raíz de 2 usando un algoritmo probabilístico?

Después de pensarlo un rato, existe un método, pero no es muy bueno y es necesario usar pi.

Principio:

En un cuadrado con longitud de lado 1, encuentra la siguiente integral.

Los límites superior e inferior de la integral son 0 y pi/4 , y el producto La función es sinX

El resultado de la integración es (1-raíz 2/2)

Aplicando la simulación de Monte Carlo, el número de veces que cae en la función anterior es N , ***prueba M veces, entonces hay:

(1-raíz 2/2) = N/M, entonces

Radroot 2 = 2*(1-N/ M)

código java:

public static void main(String[] args) {

int CONSTANT = 1000000;

java .util.Random rnd1 = nuevo java.util.Random(System.currentTimeMillis());

java.util.Random rnd2 = nuevo java.util.Random(System.currentTimeMillis() / rnd1.nextLong ());

int count = 0;

for(int i = 0; i < CONSTANT; i++) {

doble x = rnd1.nextDouble ();

p>

doble y = rnd2.nextDouble();

if(x > Math.PI / 4) {

continuar;

}

if(Math.sin(x) < y) {

continuar;

}

contar++ ;

}

valor doble = (1 - 1.0 * recuento / CONSTANTE) * 2;

System.out.println(valor);

}

¡Pensaré en otros métodos que no requieran PI!