Saltar al contenido

establecer la semilla para el número aleatorio de Excel

Ten en cuenta que en las ciencias informáticas un problema casi siempere puede tener varias soluciones, de igual modo nosotros aquí te mostraremos lo mejor y más óptimo.

Solución:

Puede implementar su propio generador de números aleatorios utilizando funciones de hoja de cálculo. Por ejemplo, C++11 tiene un generador de números aleatorios de Lehmer llamado minstd_rand que se obtiene por la recurrencia

X = X*g (mod m)

dónde g = 48271 y m = 2^31-1

En A1 puedes colocar tu valor inicial. En A2 ingrese la fórmula:

=MOD(48271*A1,2^31-1)

y cópielo hasta donde lo necesite.

En B2 ingresar =A2/(2^31-1) y en C2 ingresar =NORM.INV(B2,10,1), copiando según sea necesario. Tenga en cuenta que siempre puede reemplazar el valor semilla en A1 por

=RANDBETWEEN(1,2^31-2)

si desea volver a activar la aleatoriedad volátil.

La siguiente captura de pantalla muestra 25 variables normales aleatorias generadas de esta manera:

ingrese la descripción de la imagen aquí

Como puede ver en el histograma, la distribución parece más o menos normal.

Podrías usar un VBAFDU() basado en la función Rnd(). Ver:

Repetir variables aleatorias en VBA

No pretendo que sea una solución perfecta, pero a mí me funciona. Lo bueno de esto es que puedo asignar un número aleatorio a una celda en particular:

Public Function GetRandom(seed As Double, min As Double, max As Double) As Double
    Dim colrow As Double
    Dim range As Double

    range = max - min
    If (Application.Caller.Column() = Application.Caller.Row()) Then
        colrow = (Log(Application.Caller.Column() + 1) * Log(Application.Caller.Row() + 1)) * seed
    Else
        colrow = (Log(Application.Caller.Column() + 1) / Log(Application.Caller.Row() + 1)) * seed
    End If
    Rnd (-1)
    Randomize colrow 
    test = Rnd * range - range / 2
    GetRandom = colrow 
End Function

Uso:

=GetRandom($Z$1,1,-1)

Yo mi ejemplo, el valor inicial está en Z1 celda, pero por supuesto puede estar en cualquier otra celda. También me permite configurar valores mínimos y máximos.

ingrese la descripción de la imagen aquí

Sección de Reseñas y Valoraciones

Nos puedes sustentar nuestra labor dejando un comentario y dejando una valoración te lo agradecemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *