En 168 levantadas cuantas veces se reciben 2 o más dobles
Escenario:
En 168 levantadas cuantas veces se reciben 2 o más dobles
Resultado:
98 veces (58, 33%)
Python:
import random
from collections import defaultdict
# 1. Función para crear el set completo de dominó (28 piedras del 0 al 6)
def create_domino_set():
"""Genera un set estándar de 28 dominós (del 0-0 al 6-6)."""
dominoes = []
for i in range(7):
for j in range(i, 7):
dominoes.append((i, j))
return dominoes
# 2. Función para repartir las piedras a los jugadores
def deal_dominoes(num_players=3, stones_per_player=7):
"""
Baraja un set completo de dominó y reparte las piedras a los jugadores.
Devuelve una lista de manos, donde cada mano es una lista de dominós.
"""
dominoes = create_domino_set()
random.shuffle(dominoes)
hands = []
for _ in range(num_players):
# Asegurarse de que haya suficientes dominós para repartir
if len(dominoes) < stones_per_player:
raise ValueError("No hay suficientes dominós para repartir a todos los jugadores.")
hand = [dominoes.pop() for _ in range(stones_per_player)]
hands.append(hand)
return hands
# Nueva simulación para contar dobles en la mano del Jugador 1
NUM_SIMULATIONS_DOUBLES = 168
p1_doubles_count = 0
print(f"Iniciando {NUM_SIMULATIONS_DOUBLES} simulaciones para contar dobles en la mano del Jugador 1...")
for i in range(NUM_SIMULATIONS_DOUBLES):
hands = deal_dominoes(num_players=4, stones_per_player=7)
p1_hand = hands[0] # Get Player 1's hand
# Count doubles in P1's hand
doubles_in_p1_hand = 0
for domino in p1_hand:
if domino[0] == domino[1]:
doubles_in_p1_hand += 1
if doubles_in_p1_hand >= 2:
p1_doubles_count += 1
print(f"\nDe un total de {NUM_SIMULATIONS_DOUBLES} simulaciones, el Jugador 1 recibió 2 o más dobles {p1_doubles_count} veces.")
Comments
Post a Comment