Ir ao conteúdo

C++ Gerando números aleatórios (distribuição normal)


Ir à solução Resolvido por Lucca Rodrigues,

Posts recomendados

Postado

Você joga uma moeda 20 vezes e calcular a probabilidade de dar cara e anota o valor(exemplo do meu professor)

 

(Tarefa): Se você repetir esse experimento 1000 vezes e faz um histograma das probabilidades calculadas, esse histograma deve ter a forma normal (distribuição normal).

 

Alguém poderia me fornecer uma ideia de como fazer isso? Sou iniciante

  • Curtir 1
Postado

@Marcos Felipe Lino Parece mais uma tarefa de estatística do que de programação... E de fato é.

Um histograma do lançamento de apenas uma moeda tem 2 casos possíveis (desconsiderando aquele de 1 em 6000 da moeda cair em sua borda):

image.png.69d6bc5abcf30b2984b24e63dac219d6.png

E é isso. Traçando a curva de Gauss, a área tem valor unitário 1. De ambos os lados da curva, temos uma probabilidade e ocorrência de 50%.

 

1 hora atrás, Marcos Felipe Lino disse:

Se você repetir esse experimento 1000 vezes e faz um histograma das probabilidades calculadas

Então faça isso. Use a função rand() (dentro de um loop) para sortear um número entre, por exemplo, 1 e 2, cada um simbolizando as faces cara e coroa.

Se cair cara, você incrementa uma variável, e se cair coroa, você incrementa outra.

  • Curtir 1
Postado

@Lucca Rodrigues eu quero fazer 1 grupo com 20 jogadas e calcular P. Vou repetir isso 1000 vezes e vai obter 100 0 valor de P.  Para depois fazer um histograma com os 1000 valores de P obtidos de cada grupo. Você teria um dica de construção? Desde já, muito obrigado pela sua resposta

  • Curtir 1
  • Solução
Postado

@Marcos Felipe Lino

1 hora atrás, Marcos Felipe Lino disse:

eu quero fazer 1 grupo com 20 jogadas e calcular P.

O que é "grupo"? O que é "P"? Seja mais claro, use termos de programação se você está se referindo à tal.

 

1 hora atrás, Marcos Felipe Lino disse:

Vou repetir isso 1000 vezes

Se vai repetir 20 jogadas 1000 vezes, então jogue 20000 vezes. Da no mesmo, mas nesse segundo caso, só precisa de 1 loop.

 

1 hora atrás, Marcos Felipe Lino disse:

Para depois fazer um histograma com os 1000 valores de P obtidos de cada grupo.

O histograma é simples, como eu já havia mostrado:

image.png.a1806566e7d90e72648cf9dfc8626bd4.png

Num único lançamento (de uma única moeda honesta), você tem lá 50% de chance pra cada face, e na prática, conforme o valor de 'n' (número de lançamentos) aumenta, a frequência relativa tende a 0.5:

image.png.59f2a60bafb1372f1c4ee1c30ac00f73.png

Entenda, 20000 lançamentos não garantem exatas 10000 ocorrências para cada caso, e eu já dei uma ideia de como você poderia fazer:

2 horas atrás, Lucca Rodrigues disse:

Use a função rand() (dentro de um loop) para sortear um número entre, por exemplo, 1 e 2, cada um simbolizando as faces cara e coroa.

Se cair cara, você incrementa uma variável, e se cair coroa, você incrementa outra.

Não sei o que você quer dizer com "fazer um grupo" ou "fazer um histograma", apenas tente fazer isso daí que eu disse, e se quiser desenhar um histograma na console (ou fazer uma função que faça isso), use caracteres do teclado (vai dar trabalho).

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!