Escreva um programa em Python que simula o lançamento de um dado
vezes e imprime o percentual de surgimento de cada face do dado. O valor
é introduzido pelo usuário, sendo que zero encerra o programa. Seu programa deverá utilizar um array para armazenar os números de aparecimento de cada face.
Dica: A função randint(ini, fim) do pacote random gera números aleatórios no intervalo
. Para exemplificar, o código abaixo exibe na tela um número inteiro aleatório entre 0 e 10:
import random
print(random.randint (0,10))
Dica: A função randint(ini, fim) do pacote random gera números aleatórios no intervalo
import random
print(random.randint (0,10))
Passo 1
Beleza, vamos recapitular o que a questão pede: escrever um programa em Python que simula o lançamento de um dado de seis faces
vezes e, no final, mostra qual foi o percentual de vezes que cada face apareceu. Se o usuário entrar com zero, o programa para. A matéria envolvida aqui é básica de Python:
- Como ler entrada do usuário e converter para inteiro;
- Laço de repetição
while
para repetir atén == 0
; - Listas (arrays) para contar quantas vezes cada face surge;
- A função
random.randint(1, 6)
para gerar cada lançamento; - Cálculo de percentual usando a fórmula
Para resolver, a gente vai precisar importar o módulo
random
, usar um loop while
para ler n
repetidas vezes, outro for
para simular os lançamentos, armazenar contagens numa lista de tamanho 6, e depois calcular e imprimir os percentuais.Passo 2
Primeiro, a gente pede ao usuário pra digitar
n
e já coloca isso dentro de um while True
, porque a ideia é repetir até ele digitar zero. Para ler e converter a gente faz:n = int(input("Quantos lançamentos? (0 para sair) "))
if n == 0:
break
Aqui o
while True
vai ficar rodando até encontrarmos o break
quando n == 0
.Passo 3
Agora, para contar quantas vezes sai cada face, criamos uma lista de seis zeros:
contagens = [0, 0, 0, 0, 0, 0]
Isso é um array em Python. Cada posição
contagens[i]
vai representar quantas vezes saiu a face i+1
.Passo 4
Para simular os lançamentos, usamos um
for
que vai de 0
até n-1
. Em cada iteração, geramos um inteiro aleatório de 1 a 6 com random.randint(1, 6)
e incrementamos a posição certa na lista:import random
for _ in range(n):
face = random.randint(1, 6)
contagens[face-1] += 1
Aqui explicando:
range(n)
cria uma sequência de tamanho n
, e o _
é só uma variável descartável. face-1
converte o valor 1–6 em índice 0–5.Passo 5
Terminados os lançamentos, calculamos o percentual de cada face. Usamos a fórmula
Em código, pra cada
i
de 0 a 5, fazemos:percentual = contagens[i] / n * 100
E aí imprimimos algo como
"Face {i+1}: {percentual:.2f}%"
pra mostrar com duas casas decimais.Passo 6
Por fim, mostramos todos os percentuais e voltamos pro começo do
while
pra pedir outro n
. Se o usuário digitar zero, encerramos com break
.Passo 7
contagens = [0, 0, 0, 0, 0, 0]
Passo 8
for _ in range(n):
face = random.randint(1, 6)
contagens[face-1] += 1
face = random.randint(1, 6)
contagens[face-1] += 1
Passo 9
print(f"\nResultados após {n} lançamentos:")
for i in range(6):
percentual = contagens[i] / n * 100 # fórmula: (contagem/n)*100
print(f"Face {i+1}: {percentual:.2f}%")
print()
for i in range(6):
percentual = contagens[i] / n * 100 # fórmula: (contagem/n)*100
print(f"Face {i+1}: {percentual:.2f}%")
print()
Resposta
import random
while True:
n = int(input("Quantos lançamentos? (0 para sair) "))
if n == 0:
print("Programa encerrado.")
break