Foro de elhacker.net

Programación => Programación General => Mensaje iniciado por: SheKeL_C$ en 8 Mayo 2016, 20:54 pm



Título: Algoritmo probabilistico con tendencia hacia un extremo
Publicado por: SheKeL_C$ en 8 Mayo 2016, 20:54 pm
Estoy desarrollando una aplicación en Java (no lo pongo en ese subforo ya que la pregunta esta orientada al algoritmo y no a su programación) en la que me gustaría implementar un algoritmo que me devuelva valores aleatorios entre por ejemplo 0 y 1000.

Los números que obtenga me gustaría que estuviesen mas cerca de 0 que de 1000.

Se me ocurren varias maneras de hacerlo, restar si es posible el numero obtenido entre la mitad del máximo (1000/2) o el divisor que se quiera para forzar más aun la tendencia.
Generando dos números aleatorios, el primero como el valor máximo del segundo numero generado.

El implementar este algoritmo depende de la complejidad de este, ya que lo que quiero conseguir es solo un "detalle" en mi aplicación, si considero que el código consume "mucha" CPU lo mas seguro es que no lo llegue a escribir.   

 


Título: Re: Algoritmo probabilistico con tendencia hacia un extremo
Publicado por: AlbertoBSD en 8 Mayo 2016, 21:07 pm
Tienes que definir Que tan cargado necesitas que esta al valor mínimo, esto de forma estadística se ve como una gráfica sesgada.

recuerdo haber implementado algo similar.

Generaba un numero seudo-aleatorio x. entre 0 y 1000 correctamente distribuido y después lo multiplicaba por una función que lo sesgaba.


Título: Re: Algoritmo probabilistico con tendencia hacia un extremo
Publicado por: engel lex en 8 Mayo 2016, 21:10 pm
puedes usar logaritmos o raices, puedes usar multiplicación por funciones o similares

lo computacionalmente más ligero sería, primero un rand de 1 a 1000, luego el numero que quieres va a ser un rand de 0 a el numero obtenido, estadísticamente va a tender la primera cuenta a 500 y el segundo al ser tendecnia de 0 a 500 será a 250... puedes sesgar esto más para simular logaritmico