#Nous déclarons une fonction qui simule une variable de densité f.
#Remarque : l'argument t n'est pas utilisé.
simu<-function(t)
{
	b=0
	while (b==0)
	{
		u=runif(1,0,1)
		v=runif(1,0,1)
		y=1/(1-v)
		if (u<y^2*exp(-y^3)/exp(1))
		{
			b=1	
		}	
	}
	return(y)	
}


f1<-function(x)
{
	if (x>1)
	{ z=exp(-x^3) }
	else
	{ z=0 }
	return(z)	
}

f2<-function(x)
{
	if (x>1)
	{ z=1/(x*x)}
	else
	{ z=0 }
	return(z)
}

Zi=integrate(f1,1,5)
Z=Zi$value #calcule la constante Z


n=5000
tab=c()
for (i in 1:n)
{
	x=simu(1)
	tab=c(tab,x)	
}
png(file="histo.png")
hist(tab,freq=FALSE,main=" ")
abs=seq(1.01,5,0.01)
y=exp(-abs*abs*abs)/Z
lines(abs,y,type='l',col='red')
y=f2(abs)
lines(abs,y,type='l',col='blue')
dev.off()