🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: chile.comp.misc
Article #35399

Re: Distribucion exponencial en C

#35399
From: Gaston Bravo
Date: Mon, 06 Apr 1998 00:00
47 lines
2376 bytes
Yobui! (vvrsalov@antonia.webhost.cl) wrote:
: Eduardo Kaftanski <ekaftan@antonia.webhost.cl> el 6 Apr 1998 00:41:04 -0400 escribio:
: } In article <6g9m7r$j4a$1@antonia.webhost.cl>,
: } Yobui!  <vvrsalov@antonia.webhost.cl> wrote:
: } >Francisca Medina H. <fmedina@antonia.webhost.cl> el 6 Apr 1998 04:19:58 GMT escribio:
: } >} Necesito implementar una distribucion exponencial (y una normal) en C
: } >} y ni siquiera se que significa...
: } Como hace mademoiselle para implementar una funcion en C que
: } retorne un numero aleatorio en alguna de dichas distribuciones?

  Para Generar una Variable aleatoria , se debe utilizar la Inversa 
  de la Funcion de distribucion acumulada. Para la exponencial es:

  U=Prob(x<=X)=F((X,Lambda)=1-exp(-Lambda*X)

  U sigue una uniforme (0,1),
  la inversa se calcula despejando X en funcion de U, esto es:
  
  X=-ln(1-U)/Lambda

  Luego, para generar una Variable X que siga la distr. exp. con
  parametro Lambda, debes generar un numero 

  U=random[0,1[    (abierto en 1 para que no quede la escoba)
  y calcular X segun la ecuacion anterior

  Para generar una Normal , es un poco mas complicado, porque la 
  funcion densidad de probabilidad no es integrable, luego no
  tiene funcion acumulada explicita, ni mucho menos inversa.
  Asi que hay que utilizar aproximaciones y .... en fin

  En el peor de los casos usa el Excel que viene con buen help al respecto 
  y hace lo que tu quieres  :)

: tons deberia ser algo como
: lambda=rand();
: mu=rand();
: sigma^2=rand();
   
   Estos random generarian Parametros aleatorios
   y no variables aleatorias, cuidado...
   Saludos
--
                              Gaston Bravo Hurtado
 gbravo@dii.uchile.cl       Est. Ing. Civ. Industrial
 gbravo@dcc.uchile.cl             U. de Chile
Technical Details
Message-ID: <6gaqsf$99v@dcc.uchile.cl>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <6g9l5e$ikk$1@antonia.webhost.cl> <6g9m7r$j4a$1@antonia.webhost.cl> <6g9md0$jmi@antonia.webhost.cl> <6g9mj9$j4a$3@antonia.webhost.cl>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII-7-bit
X-Google-Thread: 107d6b,dab859bce1b8fd5d
X-Google-Attributes: gid107d6b,public
From: gbravo@anakena.dcc.uchile.cl (Gaston Bravo)
Subject: Re: Distribucion exponencial en C
Date: 1998/04/06
Message-ID: <6gaqsf$99v@dcc.uchile.cl>
X-Deja-AN: 341601879
References: <6g9l5e$ikk$1@antonia.webhost.cl> <6g9m7r$j4a$1@antonia.webhost.cl> <6g9md0$jmi@antonia.webhost.cl> <6g9mj9$j4a$3@antonia.webhost.cl>
Organization: Universidad de Chile, Depto. de Ciencias de la Computacion
Newsgroups: chile.comp.misc