Quebrando o pau, matematicamente

Quando estudei na PUC-Rio havia uma matéria chamada Modelos Probabilisticos ministrada pelo pessoal da Telecom, que era conhecida por suas provas criativas.

Numa destas provas havia uma questão cujo enunciado é o que vai abaixo e serve como nossa leitura de final de semanamatem:

“Suponha que você quebre um palito num ponto aleatório do comprimento dele, escolha o maior pedaço e quebre novamente de forma aleatória. Qual é a probabilidade de você formar um triângulo com os três pedaços?”

Antes de sair procurando alopradamente no Google, não havia o Google ainda em 1996 quando fazia esta matéria, note que este problema é ligeiramente distinto do “three stick triangle problem”, neste nosso você escolhe para a segunda quebra o maior pedaço o que é diferente de quebrar um pedaço de pau em 3 pedaços diretamente.

Há duas formas de resolver este problema, uma forma computacional, que não era o caso na época, e uma forma analítica. A forma analítica é interessante porém exige um conhecimento matemático mais aprofundado. Já a forma computacional está disponível para qualquer um que saiba programar como mostramos no script Python abaixo.

from random import random
 
def isTriangle (a,b,c):
        lista = [a,b,c]
        lista.sort()
        if (lista[2] < (lista[1]+lista[0])):
                return True
        else:
                return False
 
def breakRule():
        p = random()
        if (p < 0.5):
                a = p
                p1 = random()
                b = (1-p) * p1
                c = (1-p) - b
        else:
                a = (1.0 - p)
                p1 = random()
                b = p * p1
                c = p - b
        return isTriangle (a,b,c)
 
sim = 0
nao = 0
 
for i in xrange(100000):
        if breakRule():
                sim += 1
        else:
                nao += 1
 
print "Número de vezes que deu certo: %d"%sim
print "Número de vezes que deu errado: %d"%nao
print "Probabilidade: %f"%(float(sim))/(sim+nao)

Agora a forma analítica de resolver.

Considerando a régua como tendo comprimento 1, vamos dividir o problema em duas partes que são simétricas. Na primeira parte a quebra ocorreu no ponto n (0 < n < 0.5) até 50% do comprimento da régua. Desta forma a segunda quebra não pode ocorrer, para respeitar a desiguldade triangular:

 

A < B + C

onde A é o comprimento do maior pedaço, nos trechos:

[n;\frac{1}{2}] ; [1 - (\frac{1}{2} - n);1]

Como pode-se ver na figura abaixo:

Desta forma, ao quebrar uma vez a régua no ponto n < 0.5 a probabilidade de formar um triângulo é dada por:

P_t(n) = \frac{n}{1-n}

Portanto a probabilidade de formar um triângulo é:

\int\limits_0^\frac{1}{2} P_t(n)dn = \int\limits_0^\frac{1}{2} \frac{n}{1-n}dn

Resolvendo a integral temos:

\log{2} - \frac{1}{2} = 0.193147

Como falamos que eram dois problemas simétricos a probabilidade de formar um triângulo é:

2 (\log{2} - \frac{1}{2}) = 0.386294

Que é o valor obtido pela nossa simulação.

Comments on this entry are closed.

  • Ricardo Bernigni

    Puxa, a molecada que faz o curso lá na PUC vai vibrar de ver o problema resolvido. 🙂 Na minha época não tinha esta moleza toda

  • Luana Fátima

    Interessante. Caiu na minha prova na UFSCar