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
whilepara 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