March 19, 2011
By

(This article was first published on Xi'an's Og » R, and kindly contributed to R-bloggers)

Some may have had reservations about the “randomness” of the straws I plotted to illustrate Bertrand’s paradox. As they were all going North-West/South-East. I had actually made an inversion between cbind and rbind in the R code, which explained for this non-random orientation. Above is the corrected version, which sounds “more random” indeed. (And using wheat as the proper, if weak, colour!) The outcome of a probability of 1/2 has not changed, of course. Here is the R code as well:


lacorde=rep(0,10^3)
plot(0,0,type="n",xlim=c(-2,2),ylim=c(-2,2))

for (t in 1:10^3){

#distance from O to chord
dchord=10

while (dchord>1){
#Generate "random" straw in large box till it crosses unit circle

a=runif(2,-10,10)
b=runif(2,-10,10)

#endpoints outside the circle
if ((sum(a^2)>1)&&(sum(b^2)>1)){

theta=abs(acos(t(b-a)%*%a/sqrt(sum((b-a)^2)*sum(a^2))))
theta=theta%%pi
thetb=abs(acos(t(a-b)%*%b/sqrt(sum((b-a)^2)*sum(b^2))))
thetb=thetb%%pi

#chord inside
if (max(abs(theta),abs(thetb))<pi/2)
dchord=abs(sin(theta))*sqrt(sum(a^2))
}
}

lacorde[t]=2*sqrt(1-dchord)
if (runif(1)<.1) lines(rbind(a,b),col="wheat")
}

lecercle=cbind(sin(seq(0,2*pi,le=100)),cos(seq(0,2*pi,le=100)))
lines(lecercle,col="sienna")


As a more relevant final remark, I came to the conclusion (this morning while running) that the probability of this event can be anything between 0 and 1, rather than the three traditional 1/4, 1/3 and 1/2. Indeed, for any distribution of the “random” straws, hence for any distribution on the chord length L, a random draw can be expressed as L=F⁻¹(U), where U is uniform. Therefore, this draw is also an acceptable transform of a uniform draw, just like Bertrand’s three solutions.

Filed under: Books, R, Statistics Tagged: Bertrand's paradox, chord, E.T. Jaynes, height, probability theory, R, simulation, triangle

R-bloggers.com offers daily e-mail updates about R news and tutorials on topics such as: visualization (ggplot2, Boxplots, maps, animation), programming (RStudio, Sweave, LaTeX, SQL, Eclipse, git, hadoop, Web Scraping) statistics (regression, PCA, time series, trading) and more...