Você está na página 1de 8

MAE 228 - Noções de Probabilidade

Processos Estocásticos e
Nome NUSP
Felipe Iada Tomitar 8061671
Vinicius Pedroso Gentile 11298240
José Roberto dos Santos 2899358
Ana Lucia Chan 13862389
Bruno Brito Pereira de Souza 11944932

Coleção de exercícios 1
Enunciado 1
Um cassino oferece o seguinte emocionante jogo: O groupier (pessoa que dirige a
mesa desse jogo) oferece um dado ao jogador; esse jogador pode lançar o dado e se
a face i aparecer para cima ele recebe i reais. Quanto você acha que ”seria razoável”
pagar para poder jogar?
Supondo que o dado seja justo, o espaço amostral e a probabilidade são dados por:
Ω = {(f acei ) onde f acei ∈ 1, 2, 3, 4, 5, 6}

1
P =
|Ω|

e no caso do problema proposto, cada face teria a probabilidade de ser sorteada:


1
Pf ace =
i
6

Simulando 10000 lançamentos utilizando o código abaixo:


In [ ]: import random

N = 100000

# Lista para armazenar os resultados das faces do dado


resultados_dado = []

# Gera 10.000 valores aleatórios representando as faces do dado


for _ in range(N):
resultado = random.randint(1, 6)
resultados_dado.append(resultado)
# Calcula a média aritmética dos resultados
media_aritmetica = sum(resultados_dado) / len(resultados_dado)

print(f"Média aritmética dos valores gerados: {media_aritmetica}")

Média aritmética dos valores gerados: 3.50064

Portanto, utilizando o valor médio de retorno, um "valor razoável" aproximado


V

para jogar seria


V <= 3.49

Suponha agora que, ao receber o dado, voce percebe que ele não tem a face 6,
tendo duas faces opostas com o número 1 e as demais faces normais (faces opostas
somando 7). Como fica a resposta agora?
Ω = {(f ace ) onde f ace ∈ 1, 2, 3, 4, 5, 1}
i i

1
P =
|Ω|

e no caso do problema proposto, cada face teria a probabilidade de ser sorteada:


1
Pf acei =
6

Cada face teria a probabilidade de:


f ace 1 2 3 4 5
i

2 1 1 1 1
Pf ace
i 6 6 6 6 6

In [ ]: # Lista para armazenar os resultados das faces do dado


resultados_dado = []

# Defina os valores possíveis e seus pesos


valores_dado = [1, 2, 3, 4, 5]
pesos_dado = [2, 1, 1, 1, 1]

# Gera 10.000 valores aleatórios representando as faces do dado com pesos


for _ in range(N):
resultado = random.choices(valores_dado, weights=pesos_dado)[0]
resultados_dado.append(resultado)

# Calcula a média aritmética dos resultados


media_aritmetica = sum(resultados_dado) / len(resultados_dado)

print(f"Média aritmética dos valores gerados com peso 2 para o valor 1: {

Média aritmética dos valores gerados com peso 2 para o valor 1: 2.66726
Portanto, utilizando o valor médio de retorno, um "valor razoável" aproximado
V

para jogar seria


V <= 2.66

Enunciado 2
Considere um triângulo equilátero inscrito numa circunferência de raio 1. Escolho ao
acaso uma corda da circunferência (segmento de reta definido por dois pontos da
circunferência). Qual é a probabilidade dessa corda ter comprimento maior que o
lado do triângulo inscrito?
Segundo Magalhães(2015), este enunciado trata-se do "Paradoxo de Bertrand",
onde podemos verificar as seguintes interpretações para encontrar a probabilidade
dessa corda ter comprimento maior que o lado do triângulo inscrito( l = √3)
Interpretação 1
Podemos fixar uma extremidade da corda e escolhemos ao acaso o outro extremo da
circunferência. O espaço amostral consiste consiste dos arcos no intervalo de
Ω

[0, 2π]ea σ − álgebra F é formada de modo a incluir todos os arcos de cuja Ω

medida possa ser avaliada. Para todo A ∈ F , definimos P (A)como a medida de um


arco dividido por 2π

As cordas com comprimento superior a são aquelas em que o outro extremo da


√3

orda está no arco com extremidades entre e . 2π

3

2π 4π
M edida do arco( ) 1
3 3
P (Cordas maiores que √3) = =
2π 3

Simulando:
In [ ]: from numpy import random
import math
import numpy as np

N = 100000
R = 1
origem = (0.0, 0.0)

def gerar_ponto(angulo):
x = math.cos(angulo)
y = math.sin(angulo)
return (x, y)

def distancia(A, B):


return math.sqrt((A[0] - B[0])**2 + (A[1] - B[1])**2)

lado_triangulo = math.sqrt(3)
In [ ]: qtdMaior = 0

## gera um ponto no intervalo [0, 2pi] que será fixo


p1 = gerar_ponto(random.uniform(0, 2 * math.pi))

for _ in range(N):
## gera um segundo ponto no intervalo de [0, 2pi] para formar uma cor
p2 = gerar_ponto(random.uniform(0, 2 * math.pi))

d = distancia(p1, p2)

if d > lado_triangulo:
qtdMaior += 1

probabilidade1 = qtdMaior / N

print(f"Simulação 1: {probabilidade1:.4f}")

Simulação 1: 0.3316

Interpretação 2
Para a obtenção da corda, escolhemos 1 ponto ao acaso em um dos raios, e por este
ponto traçamos uma perpendicular. O particular raio utilizado é irrelevante e o
procedimento aleatório é equivalente a sortear um ponto ao acaso no segmento
.
[0, 1]

Para essa interpretação, seja o intervalo e uma


Ω [0, 1] F σ − algebra constituída
de modo a incluir todos os intervalos de cujo comprimento esteja definido. Para
Ω

todo A ∈ F definimosP (A) como sendo o comprimento de . A

Para produzir os tamanhos desejados de corda o ponto escolhido precisa estar no


entervalo[0, 1/2] . Então:
1 1
P (Cordas maiores que √3) = Comprimento do I ntervalo [0, ] =
2 2

Simulando:
In [ ]: qtdMaior = 0

alpha = random.uniform(0, 2 * math.pi)

## gera um raio aleatório intervalo [0, 2pi] que é menor igual ao Raio/2
p1 = gerar_ponto(alpha)
p1 = (p1[0] * (R / 2), p1[1] * (R / 2))

for _ in range(N):

r = random.uniform(0,R)
p2 = gerar_ponto(alpha)
p2 = (p2[0] * r, p2[1] * r)

if distancia(p1, (0, 0)) >= distancia(p2, (0, 0)):


qtdMaior += 1

probabilidade1 = qtdMaior / N
print(f"Simulação 2: {probabilidade1:.4f}")

Simulação 2: 0.5024

A corda é escolhida ao acaso da seguinte forma: escolheremos aleatóriamente um


ponto P edentro do circulo e o ligamos ao centro atráves de um segmento de reta. A
corda traçada nesse ponto de forma a ser perpendicular ao segmento de reta.
Para esse interpretação consideramos como o círculo unitário e F uma
Ω

σ − algebra contituída de forma incluir todos os subconjuntos de cuja a área


Ω

esteja definida. para todo


A ∈ F , definimos umaP (A) como sendo o quociente
entre a área de A e a área do círculo unitário.
É um exercício de geometria, verificar que a região que prodizirá as cprdas
desekadas é círculo nscrito no triángulo , de mesmo centro e raio . Logo a
1

probabilidade de interesse será:


2


Área do Círculo (0, 1/2) 4
1
P (Cordas maiores que √3) = = =
Área do Círculo (0, 1) π 4

In [ ]: qtdMaior = 0

for _ in range(N):
rand = math.sqrt(random.uniform(0, R))
p1 = gerar_ponto(random.uniform(0, 2 * math.pi))
p1 = (p1[0] * R * rand, p1[1] * R * rand)

if distancia(p1, (0, 0)) <= (R / 2):


qtdMaior += 1

probabilidade1 = qtdMaior / N

print(f"Simulação 3: {probabilidade1:.4f}")

Simulação 3: 0.2494

Magalhães(2015) conclui que as ambiguidades de interpretação decorrem da


afirmação "escolhidas ao acaso", pois não especifíca como a estratégia de
interpretação.
Magalhães, Marcos Nascimento(2015): Probabilidade e Variáveis Aleátórias - 3. ed. 2
reimpr. - São Paulo. Editora da Universidade de São Paulo, 2015.

Enunciado 3
Um apresentador de TV mostra a umcompetidor três caixas aparentemente idênticas
e informa que dentro de uma delas há uma pepita de ouro enquanto que dentro de
cada uma das outras há uma pedra de cascalho sem valor. Ele pode escolher uma
destas caixas e receberia o que nela for encontrado. (Naturalmente imaginamos que
ele não consegue identificar a caixa correta antes de examiná-la). Qual é a
probabilidade dele ganhar a pepita de ouro?
In [ ]: from numpy import random
import math
import numpy as np

N = 100000

In [ ]: escolha_correta = 0

for _ in range(N):
caixa_correta =random.choice(['Caixa 1', 'Caixa 2', 'Caixa 3'])
caixa_escolhida =random.choice(['Caixa 1', 'Caixa 2', 'Caixa 3'])
escolha_correta += caixa_correta==caixa_escolhida

print(f'Chance de ganhar: {"{:.1%}".format(escolha_correta/N)}')

Chance de ganhar: 33.4%

Suponha agora que, antes que o competidor possa abrir a caixa que ele escolheu, o
apresentador abre uma das outras duas caixas, mostra que nela há uma pedra de
cascalho e pergunta se ele quer mudar sua escolha inicial. Que você acha que ele
deve fazer?
In [ ]: caixa_nao_trocada=0
caixa_trocada=0

for _ in range(N):
caixa_correta =random.choice(['Caixa 1', 'Caixa 2', 'Caixa 3'])
caixa_escolhida =random.choice(['Caixa 1', 'Caixa 2', 'Caixa 3'])

outras_caixas_nao_corretas = list(set(['Caixa 1', 'Caixa 2', 'Caixa 3


outra_caixa =list(set(['Caixa 1', 'Caixa 2', 'Caixa 3'])- set([caixa_

caixa_nao_trocada += caixa_escolhida == caixa_correta


caixa_trocada += outra_caixa == caixa_correta

print(f'\n\
Chances de ganhar baseado nas seguintes estratégias:\n\
Sem troca da caixa inicial: {"{:.1%}".format(caixa_nao_trocada/N)}\n\
Com troca da caixa inicial: {"{:.1%}".format(caixa_trocada/N)}')

Chances de ganhar baseado nas seguintes estratégias:


Sem troca da caixa inicial: 33.4%
Com troca da caixa inicial: 66.6%

Este enunciado é uma variação do "Problema de Monty Hall" e em


"https://www.ufrgs.br/wiki-r/index.php?title=Paradoxo_de_Monty_Hall" há uma boa
explicação do paradoxo - Adaptado para o enunciado 3:
Fórmula da probabilidade P (A)

P (A) : Probabilidade de ocorrência do eventoA

n(A) : Número de casos favoráveis de A


n(E) : Número de casos possíveis de E

P (A) = n(A)n(E)

Resolvendo o problema
Vamos dividir esse problema em duas possibilidades:
Possibilidade 1: Não trocar a porta
Possibilidade 2: Trocar a porta
Analisando a possibilidade 1 Ao escolher uma das três portas e não trocar após uma
delas ser aberta:
1
P (ganhar) =
3

1 2
P (nãoganhar) = 1 − P (ganhar) = 1 − =
3 3

Portanto, temos 1
de chances de ganhar o prêmio e
= 33, 3...
2
= 66, 6... chances
de não ganhar o prêmio.
3 3

Analisando a possibilidade 2
Ao escolher uma das três caixas e trocar após uma delas ser aberta:
2
P (ganhar) =
3

2 1
P (não ganhar) = 1 − P (ganhar) = 1 − =
3 3

Portanto, temos 2
de chances de ganhar o prêmio e
= 66, 6...
1
= 33, 3... chances
de não ganhar o prêmio.
3 3

Ou seja, a probabilidade de ganhar o prêmio dobra.

Você também pode gostar