#u= numero en [0,1].
#probas= vector de pesos que sumen 1.
###################################################
escoge=function(u,probas){
Res=0; i=0
while(Res==0){
i=i+1
Res=i*(u<=cumsum(probas)[i])
#if(u<=cumsum(probas)[i]){Res=i}
#else{Res=0}
}
Res}
###################################################
###EJEMPLO##
u=runif(1)
escoge(u,c(.3,.3,.4))
La siguiente función utiliza la función "escoge" para generar una muestra aleatoria de tamaño "n".
#n= elementos de la muestra deseada.
#probas= vector de pesos que sumen 1.
####################################################
GenDis=function(n,probas){
muestra=numeric(n); U=runif(n)
for(i in 1:n){muestra[i]=escoge(U[i],probas)}
muestra}
####################################################
###EJEMPLO 1##
GenDis(8,c(.3,.3,.4))
############
###EJEMPLO 2##
sop=0:10
v=dbinom(sop,10,.3)
plot(sop,v)
a=GenDis(1000,v)-1
b=rbinom(1000,10,.3)
hist(a,freq=F,add=T,col="yellow")
hist(b,freq=F,add=T,col="green")