Sandbox · Experimento

Histograma de lanzamientos de dados

Este programa sandbox demuestra cómo se distribuyen estadísticamente los lanzamientos aleatorios de dados. Los resultados se muestran como un histograma, haciendo directamente visibles las frecuencias y partes relativas.

Formato Pygame
Tema Probabilidad & Estadística
Visualización Histograma
Interacción Teclado y Mouse
Histograma de lanzamientos de dados

Introducción

Este programa sandbox utiliza pygame para mostrar visualmente la frecuencia de los lanzamientos de dados.

El programa simula lanzamientos de dados y muestra los resultados como un gráfico de barras. Cada número de dado desde 1 hasta 6 tiene su propia barra. Cuanto más alta sea la barra, más frecuentemente se lanzó el número correspondiente.

Esto crea un histograma que hace visible la distribución estadística de los resultados.


Variables centrales

El programa utiliza varias variables para calcular estadísticas y mostrarlas.

VariableSignificado
countsLista del número de lanzamientos por cada número de dado
total_rollsNúmero total de todos los lanzamientos
MAX_BAR_HEIGHTAltura máxima de las barras en el gráfico

La altura de una barra se calcula en relación con el lanzamiento del dado más frecuente.


Panel de control

La simulación puede controlarse tanto con el teclado como con los botones de la ventana.

Teclado

BotónFunción
SPACELanzamiento individual de un dado
ASerie de lanzamientos
RReiniciar estadísticas
ESCSalir del programa

Botones

En la parte inferior, hay tres botones:

BotónFunción
+1Un lanzamiento
+10Diez lanzamientos
RSTReiniciar

Los botones realizan las mismas funciones que los comandos del teclado.


Cómo se cuenta un lanzamiento de dado

Se genera un lanzamiento de dado con un número aleatorio. Entonces, la posición correspondiente en la lista counts se incrementa.

1
2
3
w = random.randint(1, 6)
counts[w - 1] += 1
total_rolls += 1

Dado que las listas en Python empiezan en 0, el valor del dado se reduce en 1.


Visualización de histograma

La altura de la barra se calcula proporcionalmente a la frecuencia.

1
2
3
4
def bar_height(value, max_value):
    if max_value == 0:
        return 0
    return int((value / float(max_value)) * MAX_BAR_HEIGHT)

Esto mantiene el diagrama bien escalado e independiente del número de lanzamientos.

Además, el programa muestra:


Valor esperado

Tan pronto como hay lanzamientos disponibles, se calcula una aproximación del valor esperado.

1
ev = sum((i + 1) * probs[i] for i in range(6))

Este valor se aproxima al valor teórico de un dado justo con un número creciente de lanzamientos.

El valor esperado teórico es:

[ E = 3.5 ]


Consejos para experimentar

Esta caja de arena está diseñada para que hagas tus propias observaciones.

Experimentos posibles:


Significado educativo

Esta caja de arena conecta varios ámbitos temáticos:

Matemáticas

Ciencia de la Computación


A medida que aumenta el número de lanzamientos, la distribución observada se aproxima más al valor teórico.

El histograma hace visible así un concepto central en estadística: Ley de los grandes números.