Consideremos la tarea de generar puntos aleatorios distribuidos uniformemente dentro de un círculo de un radio determinado $r$ que está centrado en el origen. Supongamos que nos dan un generador de números aleatorios $R$ que genera un número de punto flotante distribuido uniformemente en el rango $[0, 1)$ .
Considere el siguiente procedimiento:
-
Generar un punto aleatorio $p = (x, y)$ dentro de un cuadrado de lado $2r$ centrado en el origen. Esto se puede conseguir fácilmente:
a. Uso del generador de números aleatorios $R$ para generar dos números aleatorios $x$ y $y$ , donde $x, y \in [0, 1)$ y, a continuación, transformar $x$ y $y$ a la gama $[0, r)$ (multiplicando cada uno por $r$ ).
b. Lanzar una moneda justa para decidir si se refleja $p$ alrededor del $x$ -eje.
c. Lanzar otra moneda justa para decidir si se refleja $p$ alrededor del $y$ -eje.
-
Ahora, si $p$ cae fuera del círculo dado, se descarta $p$ y generar otro punto. Repita el procedimiento hasta que $p$ está dentro del círculo.
¿Es correcto el procedimiento anterior? Es decir, ¿son los puntos aleatorios generados por él distribuido uniformemente dentro del círculo dado? ¿Cómo se puede [des]demostrar formalmente?
Información de fondo
En realidad, la tarea se encomendó en Ruby Quiz - Puntos aleatorios dentro de un círculo (#234) . Si está interesado, puede compruebe mi solución en el que he implementado el procedimiento descrito anteriormente. Me gustaría saber si el procedimiento es matemáticamente correcto o no, pero no he podido averiguar cómo [des]probarlo formalmente.
Obsérvese que la tarea real consistía en generar puntos aleatorios distribuidos uniformemente dentro de un círculo de un radio determinado y posición pero lo he omitido intencionadamente en la pregunta porque los puntos generados se pueden trasladar fácilmente a sus posiciones correctas en relación con el centro dado.
0 votos
@jacob seguramente quieres decir -pi y +pi o 0 y 2pi? Y eso era exactamente lo que estaba pensando :) Hay que pasar por el aro para hacerlo en coordenadas cartesianas, mientras que es trivial en coordenadas polares.
0 votos
@workmad3 sí, -pi y +pi. Pero lo he borrado ya que mi sugerencia no era uniforme y no he podido averiguar cómo hacerlo.
0 votos
Yo tampoco estaba seguro de cómo conseguir la uniformidad, por eso miraba de sugerir coordinaciones polares en un comentario más que una respuesta completa :)
0 votos
Por supuesto, en el paso 1 puedes simplemente establecer $x=2r\cdot R-r$ , $x=2r\cdot R-r$ en lugar de generar los signos por separado.