Necesito generar una secuencia infinita de enteros aleatorios, con números en el rango [1..n]. Sin embargo, la probabilidad para cada número p_i se da con antelación, por lo que la distribución no es uniforme.Generando enteros aleatorios con probabilidades dadas
¿Hay una función de biblioteca para hacerlo en Haskell?
yo sólo probamos este "tiempo total 55.59s" en contra de la aplicación aquí: http://idontgetoutmuch.wordpress.com/2014/08/26/haskell-vectors-and-sampling-from-a-categorical -distribución/"Tiempo total 11.09s" muestreo 2 * 10^7 muestras en ambos casos. Quizás esta no es una comparación justa ya que uno usa System.Random y el otro System.Random.MWC. – idontgetoutmuch
Sí, supongo que generar números aleatorios dominaría en mi código. También necesita especialización, lo que podría suceder automágicamente con -O2. – augustss
Utilizando un generador de números aleatorios diferente obtengo "Tiempo total 20.31s" mejor, pero aún así no es tan bueno. No he intentado la especialización todavía. También el uso de memoria no es bueno. Esperaría 4 + 8 bytes para cada entrada en las dos tablas, por lo que deberían ser 2 * 12 * 10^7 bytes, por lo que menos de 1G. Estoy viendo alrededor de 5G. Sin embargo, probablemente soy ingenuo. Y todavía no he terminado de leer Devroye y Vose. ¿Quién hubiera pensado que podría divertirse tanto con números aleatorios? – idontgetoutmuch