Problema de matemáticas y estadísticas.

Iniciado por APOKLIPTICO, 30 Enero 2011, 22:30 PM

0 Miembros y 1 Visitante están viendo este tema.

APOKLIPTICO

Buenas gente! Como va todo?
Bueno, hoy les vengo con un problema matemático a ver si me pueden dar una mano.
El tema es así, estoy trabajando con generadores pseudoaleatorios, en definitiva como deben saber ya uds, son funciones determinísticas que generan una salida de números que imitan la aleatoriedad real.
Esto se logra con funciones discretas, es decir, congruenciales.

Bueno, el chiste de los PRNGs es que si uno crea un gráfico de distribución, se va a dar cuenta que tienen distribución uniforme, es decir que cada caracter sale más o menos la misma cantidad de veces. El gráfico se vería parecido a este:



La idea, es que estaba buscando una manera eficiente de sin tocar la fórmula del PRNG original, agregarle algo (por ejemplo multiplicarlo por un valor o dividirlo) a dicha fórmula para que la distribución, se vea más gaussiana, es decir parecida a esta:



Cree una función en base a la función gaussiana original que muestra como me gustaría que quede la distribución, esta fórmula es:
e^(-(x-mean)^2*(sdev^2)*0,5)

Siendo mean = 127,5 y sdev=0,01.
Si uno grafica esta fórmula, va a ver una función gaussiana pero con un dominio (0;1] y una imagen (-inf;+inf).
Para el PRNG, me gustaría que la distribución se aproxime a la curva generada por la imagen [0;255] de dicha función.

Se que suena complicado, pero estoy seguro que algún aficionado a las matemáticas me puede dar una mano.

Muchas gracias!!
Un abrazo
APOKLIPTICO.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

Nakp

Ojo por ojo, y el mundo acabará ciego.

APOKLIPTICO

A nadie se le ocurre nada??
Digan algo, aunque suene disparatado.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

bomba1990

Digan algo, aunque suene disparatado.

disparate:
no se mucho de matematica pero quizas te sirva probar con valor absoluto del coseno.
"Cuando le di de comer a los pobres me llamaron santo, pero cuando pregunte porque los pobres eran pobres me dijeron comunista"

http://sosinformatico.blogspot.com/
http://www.publisnet.com.ve

APOKLIPTICO

A ver, explicate un poco más, como lo aplicaría?
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

-sagitari-

Desde el punto de vista de la informática en este tema ni idea, pero desde el punto de vista puramente estadístico. Con eso que dices de obtener una forma más gaussiana supongo que te refieres a obtener una distribución normal (0;1) lo que debes hacer es tipificar para obtener una distribución estandarizada.

Pero pasar del modelo uniforme [a,b] al normal (0;1) nunca lo he hecho, no tienen un comportamiendo homogéneo, no se tratan de intervalos los 2 modelos, así que ni idea xd

Supongo que te resulta algo abstracto todo lo que he dicho porque así es la estadística pero no sé cómo ayudarte, lo siento.

APOKLIPTICO

Todo ayuda, todo ayuda, la idea es modificar la fórmula, ya sea multiplicando, sumando o lo que haya que hacer, de tal manera que los valores que salgan salgan con una distribucion normal, es decir, que los de el centro (127,128), salgan más que los de las puntas (0 y 255).
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

leogtz

@APOKLIPTICO

No es por hacer spam, pero hay un foro excelente de matemáticas en donde te pueden ayudar mejor:

http://rinconmatematico.com/foros/
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com

APOKLIPTICO

Leo, para nada creo que sea SPAM, me registré recién, pero por alguna razón, no me llegó el mail de activación, te molestaría activarme la cuenta manualmente?

Muchas gracias.
AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.

leogtz

Para nada, comentame por MP para hacerlo.
Código (perl) [Seleccionar]

(( 1 / 0 )) &> /dev/null || {
echo -e "stderrrrrrrrrrrrrrrrrrr";
}

http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com