Battle Dice Battle Dice
Moderate
EN DE Spanish RU

tienes de ganar un juego de mesa. El juego consiste en dos jugadores que desplazan unidades sobre un mapa. Cuando las unidades se encuentran para un combate, ambos jugadores lanzan dados, uno por cada unidad, determinando quién gana y a qué costo. Tú deberás encontrar la probabilidad de ganar una de estas batallas, sin tener en cuenta las pérdidas. Recuerda que si la batalla termina con ninguna unidad de cada lado, se considera empate y no una victoria.

Cuando comienza un conflicto, cada jugador tira un dado por unidad. Cada dado tiene un número particular de iconos de ataque y de defensa en cada lado. Después de un lanzamiento, un jugador pierde un número de unidades igual al número de iconos de ataque que obtuvo su oponente, menos el número de iconos de defensa que el mismo obtuvo. Por ejemplo, si después...

Una vez se aplican las pérdidas de unidades, los jugadores realizan otro lanzamiento. Esto continúa hasta que uno de los jugadores no tiene unidades restantes.

Se te dará la descripción de los dados, como una lista de cuales iconos se encuentran en una cara, así como la cantidad de dados que cada jugador tiene. Todos los dados son exactamente iguales. Cada elemento de la lista es una cadena (str) que contiene cero o más 'A', representado los iconos de ataque, y cero o más 'D' representando los iconos de defensa. Nota: ¡La cara puede estar en blanco! Por ejemplo, la lista ["AAD ", " ADD ", "A", "D", "", ""] representa un dado de seis caras con: dos iconos de ataque y uno de defensa en una cara; un icono de ataque y dos de defensa en otra; un icono de ataque y ninguno de defensa en una tercera cara; un icono de defensa y ninguno de ataque en la cuarta y finalmente, dos caras en blanco.

Deberás estimar la probabilidad que el primer jugador gane el conflicto. Si el primer jugador tiene una probabilidad de 1 en 7 de ganar, deberás regresar ≈0.1429. El resultado deberá reportarse con cuatro dígitos de precisión ±0.0001.

Tres argumentos. La descripción del dado como una lista de cadenas(str). El número de unidades para cada jugador, como dos enteros(int).

la probabilidad que el primer jugador gane el conflicto, como un decimal (float) o entero (int).

battle_probability(['A', 'D'], 3, 3) == 0.0000 # It's not immediately obvious, but each player will always lose the same number of units
battle_probability(['A', 'D'], 4, 3) == 1.0000
battle_probability(['AA', 'A', 'D', 'DD'], 3, 4) == 0.0186
battle_probability(['AA', 'A', 'D', 'DD'], 4, 4) == 0.4079
battle_probability(['AA', 'A', 'D', 'DD'], 5, 4) == 0.9073

Cálculos de probabilidad con múltiples pasos como el de esta misión, son esenciales tanto en concursos de programación como en libros de probabilidad.


1 ≤ ≤ 10
1 ≤ ≤ 10
2 ≤ len( ) ≤ 10
Hay al menos un icono de ataque en el dado.
Hay como máximo tres iconos en cada cara.

You should be an authorized user in order to see the full description and start solving this mission.