Generar Números aleatorios entre 2 valores

18 de mayo de 2009

En los últimos días me han preguntado 2 veces como generar números aleatorios entre 2 valores en SAS. Realmente la manera de generar estás secuencias de números aleatorios va más allá del software que estes utilizando, puede ser SAS, Ms Excel, Visual Basic, Java etc etc. La base es la misma. Aquí tienen un pequeño ejemplo.


La función o ecuación que vamos a utilizar es la siguiente:

Int((MaxValue - MinValue + 1) * Rnd) + MinValue

donde, MaxValue y MinValue son los valores extremos de cadena o secuencia de números aleatorios que se desean generar y Rnd es la distribución que deseamos utilizar, puede ser Uniforme, Normal, Poisson, Binomial, Weibull etc.

El siguiente ejemplo genera 100 números aleatorios uniformes entre 100 y 1000.

Data random;
do i=1 to 100;
secuencia=Int((1000 - 100 + 1) * ranuni(058212)) + 100;
output;
end;
run;

SASludos

Alberto

1 comentarios:

sawbona dijo...

Hola. muchas gracias. me has salvado la vida. Bueno, no tanto, pero sí me has ayudado mucho. Saludos.!

implementado en java:

public int[] random(int n, int low, int high) {
int[] resultado = new int[n];
for (int i = 0; i < resultado.length; i++) {
resultado[i] = (int) ((high - low + 1) * Math.random() + low);
}
return resultado;
}