1 usuario conectado

Tirada de dados en Python

Comparte esto

 
Escribe un código Python que simule una tirada de un dado de seis caras un número específico de veces y devuelva un diccionario con la frecuencia con la que salió cada cara (1 al 6).

.


Más ejercicios




Mostrar/Ocultar ejercicio resuelto


  Solución al Ejercicio: Tirada de dados

📋 Copiar código


import random

def simular_tirada_dados(num_tiradas):
  """
  Simula la tirada de un dado de seis caras un número específico de veces
  y devuelve un diccionario con la frecuencia de cada cara.

  Args:
    num_tiradas: El número de veces que se simulará la tirada del dado (entero positivo).

  Returns:
    Un diccionario donde las claves son las caras del dado (1 al 6) y los valores
    son la frecuencia con la que salió cada cara.
    Devuelve un diccionario vacío si num_tiradas no es un entero positivo.
  """
  if not isinstance(num_tiradas, int) or num_tiradas <= 0:
    return {}

  frecuencia_caras = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
  for _ in range(num_tiradas):
    resultado = random.randint(1, 6)  # Genera un número aleatorio entre 1 y 6 (inclusive)
    frecuencia_caras[resultado] += 1

  return frecuencia_caras

# Ejemplo de uso
num_tiradas_1 = 1000
resultados_1 = simular_tirada_dados(num_tiradas_1)
print(f"Simulando {num_tiradas_1} tiradas de dado:")
print(f"Frecuencia de las caras: {resultados_1}")

num_tiradas_2 = 5000
resultados_2 = simular_tirada_dados(num_tiradas_2)
print(f"\nSimulando {num_tiradas_2} tiradas de dado:")
print(f"Frecuencia de las caras: {resultados_2}")

num_tiradas_invalida = -10
resultados_invalido = simular_tirada_dados(num_tiradas_invalida)
print(f"\nSimulando {num_tiradas_invalida} tiradas de dado:")
print(f"Frecuencia de las caras: {resultados_invalido}")


Explicación del Código:

  1. import random:

    • Importa el módulo random, que proporciona funciones para generar números aleatorios.
  2. def simular_tirada_dados(num_tiradas)::

    • Define una función llamada simular_tirada_dados que toma un entero (num_tiradas) como argumento, representando el número de veces que se simulará la tirada del dado.
  3. """Docstring...""":

    • La cadena de documentación explica la función, su argumento y lo que devuelve.
  4. if not isinstance(num_tiradas, int) or num_tiradas <= 0::

    • Se verifica si num_tiradas no es un entero o si no es un entero positivo. Si alguna de estas condiciones es verdadera, la función devuelve un diccionario vacío, ya que una simulación válida requiere un número positivo de tiradas.
  5. frecuencia_caras = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}:

    • Se inicializa un diccionario llamado frecuencia_caras. Las claves son las posibles caras del dado (del 1 al 6) y los valores se inicializan en 0. Este diccionario se utilizará para contar cuántas veces sale cada cara.
  6. for _ in range(num_tiradas)::

    • Se inicia un bucle for que se ejecutará num_tiradas veces. El guion bajo _ se utiliza como nombre de variable cuando no necesitamos usar el valor del índice del bucle.
  7. resultado = random.randint(1, 6):

    • Dentro del bucle, se utiliza la función random.randint(1, 6) para generar un número entero aleatorio entre 1 y 6 (ambos inclusive), simulando el resultado de una tirada de un dado de seis caras.
  8. frecuencia_caras[resultado] += 1:

    • El valor de resultado (la cara que salió en la tirada simulada) se utiliza como clave para acceder al diccionario frecuencia_caras, y su valor (la frecuencia de esa cara) se incrementa en 1.
  9. return frecuencia_caras:

    • Después de completar todas las simulaciones, la función devuelve el diccionario frecuencia_caras, que contiene la frecuencia con la que salió cada cara del dado.

     

  10. Ejemplo de uso:

    • Se definen dos números de tiradas (num_tiradas_1 y num_tiradas_2) para simular diferentes cantidades de tiradas.
    • Se llama a la función simular_tirada_dados con cada número de tiradas y los resultados se imprimen.
    • También se incluye un ejemplo con un número de tiradas inválido para mostrar el manejo de ese caso.