Paradoxo do aniversário. Em teoria das probabilidades, o paradoxo do aniversário afirma que dado um grupo de 23 (ou mais) pessoas escolhidas aleatoriamente, a chance de que duas pessoas terão a mesma data de aniversário é de mais de 50%. Implemente um programa que mostra esta teoria. Podem ser utilizados os métodos embutidos nas classes list e set.
Passo 1
Beleza, vamos resolver esse exercício que fala sobre o Paradoxo do Aniversário na Teoria das Probabilidades. A ideia é criar um programa que mostra que, em um grupo de 23 pessoas, a chance de pelo menos duas terem o mesmo aniversário é maior que 50%. Para isso, vamos usar as classes list e set no nosso código.
Passo 2
Primeiro, precisamos entender o que é o Paradoxo do Aniversário. Apesar do nome, não é realmente um paradoxo, mas sim uma situação contra-intuitiva. A matemática nos mostra que em um grupo de 23 pessoas, há mais de 50% de chance de que pelo menos duas compartilhem o mesmo dia de aniversário.
Passo 3
Para simular isso, vamos pensar em como representar os aniversários. Podemos assumir que há 365 dias no ano (ignorando anos bissextos para simplificar). Cada pessoa no grupo vai ter um número de 1 a 365 representando seu aniversário.
Passo 4
Agora, vamos usar uma list para armazenar os aniversários das pessoas no grupo. A gente vai simular que cada pessoa escolhe um aniversário aleatoriamente.
Passo 5
Depois de gerar a lista de aniversários, queremos verificar se há duplicatas. Para isso, usamos um set, que elimina qualquer repetição. Se o tamanho do set for menor que o da list, significa que tem pelo menos dois aniversários iguais.
Passo 6
Para tornar a simulação mais precisa, vamos repetir esse processo várias vezes (por exemplo, 10.000 vezes) e contar quantas vezes conseguimos pelo menos dois aniversários iguais. Assim, podemos calcular a porcentagem de vezes que isso acontece, aproximando a probabilidade real.
Passo 7
Vamos implementar isso em Python. Usaremos as bibliotecas random para gerar aniversários aleatórios e set para verificar duplicatas. A gente define uma função que simula um experimento e depois calcula a probabilidade baseada nas repetições.
Passo 8
Aqui está o código completo que realiza essa simulação:
import random
defsimular_paradoxo_aniversario(grupo, tentativas):
sucesso = 0for _ inrange(tentativas):
aniversarios = [random.randint(1, 365) for _ inrange(grupo)]
iflen(aniversarios) != len(set(aniversarios)):
sucesso += 1
probabilidade = (sucesso / tentativas) * 100return probabilidade
# Parâmetros
tamanho_grupo = 23
numero_tentativas = 10000# Execução da simulação
resultado = simular_paradoxo_aniversario(tamanho_grupo, numero_tentativas)
print(f'A probabilidade de pelo menos dois aniversários iguais em um grupo de {tamanho_grupo} pessoas é de aproximadamente {resultado:.2f}%')
Resposta
Rodando esse código, você vai obter um resultado próximo a 50,7%, o que confirma o Paradoxo do Aniversário: em um grupo de 23 pessoas, há mais de 50% de chance de que pelo menos duas compartilhem o mesmo aniversário.