Estimación del valor de eee usando una función aleatoria

Encontré la pregunta que le pide que calcule el valor de π utilizando una función que genera un número real aleatorio en [ 0 , 1 ] (y está distribuida uniformemente). La forma es usar la función dos veces para obtener un par real que podamos ver como un punto en el plano euclidiano, luego usar la idea del método de Monte Carlo. Me pregunto si también podemos usar esta función para estimar mi , sin embargo, no puedo encontrar ninguna interpretación geométrica del número, o este problema se puede resolver de otra manera?

Respuestas (7)

Generar norte permutaciones aleatorias (posiblemente con la mezcla aleatoria de Knuth ).

Luego cuente cuántos de ellos son trastornos : norte D .

Entonces

norte norte D mi

¡Una hermosa solución!
¡Pero solo se cumple cuando N es lo suficientemente grande, calculando N! sería doloroso…
@JWang No, la verdadera proporción converge rápidamente a 1 / mi como k crece ( k siendo la longitud de la permutación). Sin embargo, la convergencia de la aproximación de monte carlo es mucho más lenta. Para permutaciones en k = 10 elementos, con norte = 10 8 muestras, obtengo norte / norte D 2.718006253262627 . No está mal. Y cualquiera que sea la longitud de la permutación, necesita muchas muestras de todos modos: con solo una, aunque la probabilidad es cercana a 1 / mi , solo hay dos valores posibles para norte D / norte : 0 o 1 .
Un ejercicio de codificación rápido y sucio proporciona e = 2.718 +-0.036alrededor de 1000 muestras de alrededor de 1000 elementos cada una. pastebin.com/gAEXhdWf
Si está tomando menos de k ! muestras, el tamaño de la muestra es la mayoría de su error: con norte muestras, su error está en el orden de ± 1 norte , mientras que la verdadera fracción de trastornos está dentro de 1 k ! de 1 mi . Si, por el contrario, estás tomando k ! o más muestras, debe seguir adelante y contar todos los trastornos, en lugar de muestrearlos al azar :)
@MishaLavrov Cierto. :)

Dibujar X i uniforme ( 1 , 3 ) y Y i uniforme ( 0 , 1 ) para i = 1 , , norte . Rechazar las muestras donde Y i > 1 / X i . Ordenar lo aceptado X i valores y tomar el ( norte / 2 ) s.

Esto se basa en la observación de que 1 mi d X / X = 1 . Así que hacemos muestreo de rechazo en el rectángulo. [ 1 , 3 ] × [ 0 , 1 ] para obtener puntos bajo el 1 / X curva. tomando el ( norte / 2 ) el valor más pequeño estamos encontrando el punto donde tenemos 1 / 2 de los puntos originales, es decir, área 1 (observando que el rectángulo original tiene área 2 ).

Aquí está la simulación con norte = 10000 puntos. Los puntos rechazados están en cian. De los puntos aceptados, el más a la izquierda norte / 2 = 5000 están en negro y el resto en azul.

Estimación de Monte Carlo de e

¡Lindo! Aquí hay una manera de hacer esto con muchos menos rechazos. Solo genera norte iid puntos uniformemente entre 1 y 3 , ordénalos así 1 < X 1 < X 2 < < X norte < 3 , luego utilícelos como una malla para aproximar 1 X i d X / X con la regla del punto medio. seguir aumentando i hasta la primera vez que la integral aproximada exceda 1 . Entonces mi X i .
¡Mike, tu solución es infinitamente mejor que la mía en términos de eficiencia! Me esforzaba por emular los "puntos originales en el disco para π "espíritu lo más cerca posible.

Tirar una moneda sesgada k veces que tiene probabilidad de cara 1 k ; dejar X 1 denota el número de cabezas que aparecen. Repitiendo este proceso norte el tiempo te da norte cuentas de cabezas X 1 , . . . , X norte . Entonces

norte | { 1 i norte : X i = 1 } | mi
cuando norte y k son grandes.

Elegir norte enteros aleatorios X 1 , X 2 , , X norte de manera uniforme e independiente en { 1 , 2 , , norte } , y luego cuenta el número norte d de enteros distintos en esta lista, o de manera equivalente, sea

norte d = # { X 1 , X 2 , , X norte } .

Entonces para grandes norte ,

norte norte norte d mi .

(Es decir, el tamaño del conjunto aleatorio { X 1 , , X norte } es aproximadamente ( 1 mi 1 ) norte .)

El número mínimo de variables aleatorias uniformes (0,1) requeridas para que su suma exceda 1 es en promedio (exactamente) mi . Más generalmente, si 0 < a 1 entonces el número mínimo de variables uniformes (0,1) requeridas para exceder a es mi a .

Dejar X 1 , X 2 , X 3 , sea ​​una secuencia de variables aleatorias iid Uniform(0,1), y sea S norte = i = 1 norte X i .

Como primer paso, afirmamos

(*) PAG ( S norte a ) = a norte norte !
para 0 < a 1 y norte 0 . Demostración por inducción sobre norte : El caso norte = 0 es trivial Suponer que ( ) sostiene de algunos norte . Entonces
PAG ( S norte + 1 a ) = 0 a ( a X ) norte norte ! d X = 1 norte ! a norte + 1 norte = a norte + 1 ( norte + 1 ) !
y la demostración está completa.

Ahora define metro ( a ) ser el menor valor de norte tal que S norte > a . Tenemos metro ( a ) > norte Exactamente cuando S norte a , entonces

mi ( metro ( a ) ) = norte 0 PAG ( metro ( a ) > norte ) = norte 0 PAG ( S norte a ) = norte = 0 a norte norte ! = mi a

Elija una secuencia de números aleatorios de [ 0 , 1 ] , deteniéndose cuando el norte -ésima opción excede la ( norte 1 ) -ésima elección. Repita, promediando el ( norte 1 ) -ésimos valores. Este promedio se acercará 3 mi .

¡Lindo! Sin embargo, ¿podría ser que esto se aproxime mi 2 en vez de 3 mi ?
no, estoy bastante seguro de que es 3-e. ¿Cómo conseguiste e-2?
¡Lo acabo de probar! Tenga en cuenta que el promedio sin duda será más que 1 / 2 , ya que ese es el valor esperado del primer sorteo, y el valor generado siempre será al menos igual al del primer sorteo.
Pegaré por programa (en Python3), para que puedas ver si entendí mal tu algoritmo:
from random import random def s(): a = random() b = random() while b > a: a = bb = random() return a N = 1000000; imprimir (2 + suma (s () para i en el rango (N))/ N)
Esto genera un valor muy cercano a mi . Disculpas por el diseño, aparentemente no puedes escribir código en un comentario
El promedio será menor a .5, ya que ese será el valor esperado de las terminaciones en segunda opción; recuerda que estamos construyendo una secuencia decreciente .
Ah, ok, no lo leí con atención, ¡estaba construyendo una secuencia creciente ! Así que el promedio de sus muestras s es el mismo que el promedio de mis muestras 1 s

Elegir norte números uniformemente en [ 0 , 1 ] . Dejar X norte ser el valor X que escogiste, para lo cual X X toma el valor más pequeño. Entonces como norte tenemos mi X norte 1 mi .

Prueba: Primero tenga en cuenta que X X tiene un mínimo en X = 1 mi . También tenga en cuenta que ambas ramas de la función inversa a X X , X [ 0 , 1 ] son continuos. Para ϵ > 0 elegir d > 0 tal que X X < ( 1 mi ) 1 mi + d | X 1 mi | < ϵ . Para suficientemente grande norte , la probabilidad de que ninguno de los números muestreados satisfaga X X < ( 1 mi ) 1 mi + d es menos que ϵ y si uno de los números muestreados satisface esto, entonces X norte también lo hará, así que | X norte 1 mi | < ϵ . De este modo

( 1 mi ϵ ) ( 1 ϵ ) < mi X norte ( 1 mi + ϵ ) ( 1 ϵ ) + ϵ .


ordenar el X X se reduce a la aritmética entera:

Para ordenar el X X , y y uno puede intercalarlos entre racionales:

a X b X X C X d X , a y b y y C y d y , a X , b X , C X , d X norte ,
de modo que
F ( a X b X ) , F ( C X d X ) F ( a y b y ) , F ( C y d y ) o r F ( a X b X ) , F ( C X d X ) F ( a y b y ) , F ( C y d y ) ,
dónde F ( X ) = X X .

Comparar F ( tu v ) y F ( z w ) con tu , v , w , z norte > 0 , tenga en cuenta que

( tu v ) tu v ( z w ) z w ( tu v ) tu w ( z w ) z v tu tu w w z v z z v v tu w .