Spezzo una sbarretta lunga L in due punti scelti "del tutto a caso". Con quale probabilità posso costruire un triangolo con i pezzi che ottengo? Stimane il valore con una simulazione al computer.

Usiamo come unità di misura L, ossia assumiamo che la sbarretta sia lunga 1.  Con "del tutto a caso" intendo dire che la posizione di ciascuno dei tre tagli sia un numero con distribuzione uniforme tra 0 ed 1.  È abbastanza facile valutare sperimentalmente quello che accade con una simulazione al computer.  Usiamo questo semplice script (poi vedremo come usare R); generiamo due punti di un segmento lungo 1, li mettiamo in ordine, indichiamo con L1, L2 e L3 le lunghezze dei tre segmenti ottenuti:

function TruthValue()
{ with(Math) {

U1 = random(); U2 = random();
x=U1; if(U2 < U1) {U1 = U2; U2 = x}
L1=U1; L2=U2-U1; L3=1-U2
V=1;
if (L1+L2<L3) { V = 0};
if (L1+L3<L2) { V = 0};
if (L2+L3<L1) { V = 0};

}}

Ho le seguenti uscite:

n=2560000 24.9905078125% +/- 0.08117961926445735%
n=1280000 24.97640625% +/- 0.11478373339207067%
n=640000 24.92703125% +/- 0.1622216002610381%
n=320000 24.82375% +/- 0.22909782578390012%
n=160000 24.851875% +/- 0.32411660066662545%
n=80000 24.8725% +/- 0.45849875837974524%
n=40000 24.975% +/- 0.6493105185338807%
n=20000 24.635% +/- 0.9140674617971235%
n=10000 24.79% +/- 1.2954451465858297%

Se mi fermo qui, posso assumere che la probabilità sia 25.0% ± 0.1%. Suppongo che la probabilità sia esattamente 1/4.

Tento di trovare una conferma teorica di quanto congetturato.  La probabilità che un numero positivo minore di 1 del tutto casuale sia minore di 1/2 è 1/2. La probabilità che anche un altro numero dello stesso tipo, indipendentemente da esso, sia minore di 1/2 è 1/2. La probabilità che entrambi siano minori di 1/2 è 1/2·1/2 = 1/4.


Con R ho:

n <- 1e4   # faccio 10 mila prove
# conto i casi in cui la somma di due segmenti qualunque è maggiore del terzo
# x ed y sono le posizioni dei tagli; le metto in ordine; metto in a,b,c le lunghezze dei lati 
s <- 0; for(i in 1:n)  {x <- runif(1); y <- runif(1); if(y<x) {k<-x; x<-y; y<-k};
         a <- x; b <- y-x; c <- 1-y; s <- s+ifelse((a+b>c)&(a+c>b)&(c+b>a),1,0)}; s/n
# 0.2576
n <- 1e5   # faccio 100 mila prove
s <- 0; for(i in 1:n)  {x <- runif(1); y <- runif(1); if(y<x) {k<-x; x<-y; y<-k};
         a <- x; b <- y-x; c <- 1-y; s <- s+ifelse((a+b>c)&(a+c>b)&(c+b>a),1,0)}; s/n
# 0.24892
n <- 1e6   # faccio 1 milione di prove
s <- 0; for(i in 1:n)  {x <- runif(1); y <- runif(1); if(y<x) {k<-x; x<-y; y<-k};
         a <- x; b <- y-x; c <- 1-y; s <- s+ifelse((a+b>c)&(a+c>b)&(c+b>a),1,0)}; s/n
# 0.250213

Posso assumere che la probabilità sia 25.0%

Volendo posso cercare un algoritmo più veloce. Basta che generi del tutto a caso, in modo indipendente, due punti in [0,1] e valuti la frequenza con cui l'ascissa massima di essi è minore di 1/2:

n <- 1e5
s <- 0; for(i in 1:n)  {x <- runif(2); s <- s+ifelse(max(x[1],x[2])<1/2,1,0)}; s/n
# 0.24977

Posso studiare il fenomeno e congetturare il limite anche con questa simulazione che rappresenta graficamente le uscite da eseguire con R.
 
Vedi qui se vuoi fare più prove senza rappresentare graficamente tutti gli esiti.

A questo punto tento di trovare una conferma teorica di quanto congetturato. La seconda versione della ricerca sperimentale mi suggerisce come procedere.  La probabilità che un numero positivo minore di 1 del tutto casuale sia minore di 1/2 è 1/2. La probabilità che anche un altro numero dello stesso tipo, indipendentemente da esso, sia minore di 1/2 è 1/2. La probabilità che entrambi siano minori di 1/2 è 1/2·1/2 = 1/4.