Foro de elhacker.net

Programación => Java => Mensaje iniciado por: kinos en 10 Septiembre 2010, 14:54 pm



Título: calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Publicado por: kinos en 10 Septiembre 2010, 14:54 pm
Buenas:

   Me pregunto como puedo calcular un número aleatorio de 1 a n pero la probabilidad de obtener un 2 es mayor de obtener un 1. Es decir, según va creciendo la serie la probabilidad aumenta.



Título: Re: calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Publicado por: Carloswaldo en 10 Septiembre 2010, 15:14 pm
Tendrías que hacer una tabla de probabilidades, no creo que hay algo implementado en java para hacerlo directamente. ¿Has estudiado sobre distribuciones para generación de números aleatorios?

Edit: Creo que para eso es la distribución geométrica: http://es.wikipedia.org/wiki/Distribuci%C3%B3n_geom%C3%A9trica


Título: Re: calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Publicado por: kinos en 10 Septiembre 2010, 15:29 pm
He estado mirando eso también, pero no se como calcular por ejemplo:

   - Si tengo 6 variables como repartiríamos el 100% de forma creciente para cada una.


Título: Re: calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Publicado por: 1mpuls0 en 18 Septiembre 2010, 21:24 pm
Citar
Buenas:

   Me pregunto como puedo calcular un número aleatorio de 1 a n pero la probabilidad de obtener un 2 es mayor de obtener un 1. Es decir, según va creciendo la serie la probabilidad aumenta.

Te refieres a que por ejemplo, calculas 6 números de manera aleatoria pero cada siguiente número debe ser mayor al anterior? :S
n1=1
n2=15
n3=50
n4=77
n5=78
n6=89

a eso te refires?

Citar
Tendrías que hacer una tabla de probabilidades, no creo que hay algo implementado en java para hacerlo directamente. ¿Has estudiado sobre distribuciones para generación de números aleatorios?

Edit: Creo que para eso es la distribución geométrica: http://es.wikipedia.org/wiki/Distribuci%C3%B3n_geom%C3%A9trica

Existe una libreria SSJ es un conjunto organizado de paquetes cuyo propósito es facilitar la simulación estocástica
de programación en lenguaje Java. Los servicios que ofrece se agrupan en diferentes paquetes.

Por ejemplo

probdist contiene un conjunto de clases Java que proporciona métodos para calcular la masa,densidad, distribución, distribución complementaria, y la distribución inversa funciones para muchas distribuciones de probabilidad discretas y continuas, así como la estimación de los parámetros de estas distribuciones.

Puedes descargar de aquí  (me dio dificultad encontrar la libreria xD)

http://download2us.softpedia.com/dl/6310f518ee620de6fefb60f6273e6d7d/4c950791/400073338/mac/Developer-Tools/ssj-20091109.zip


y aquí un poco de documentación

http://www.iro.umontreal.ca/~simardr/ssj/doc/html/umontreal/iro/lecuyer/probdist/GeometricDist.html
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.150.2608&rep=rep1&type=pdf

Cabe señalar que el archivo tiene muy buena información, códigos, ejemplos, pero todo está en inglés xD

Y la verdad no sé si te vaya a servir para lo que deseas hacer :s

Citar
He estado mirando eso también, pero no se como calcular por ejemplo:

   - Si tengo 6 variables como repartiríamos el 100% de forma creciente para cada una.

Te refieres a que no solamente deben calcular los numeros de manera aleatoria y creciente, sino que ademas deben sumar el 100%?? xD

La verdad estoy un poco confundido con lo qeu deaseas hacer, tal vez si contestas podria ayudar.

Un saludo





Título: Re: calcular numero aleatorio de 1 a n pero la probabilidad debe ser creciente
Publicado por: Carloswaldo en 19 Septiembre 2010, 02:07 am
Te refieres a que no solamente deben calcular los numeros de manera aleatoria y creciente, sino que ademas deben sumar el 100%?? xD

La verdad estoy un poco confundido con lo qeu deaseas hacer, tal vez si contestas podria ayudar.

Claro, es que tiene que ser así porque vas a generar un número aleatorio U (de 0 a 1) que determinará según la posición en una tabla (por ejemplo) cuál de los números queda como resultado.