Algunos amigos y yo hemos jugado DSA (un juego de rol de mesa principalmente alemán muy parecido a D&D). Me preguntaba cuáles son las posibilidades de pasar las tiradas, por lo que tendrá que escribir un código para calcularlo.
Tu personaje está definido por estadísticas (de 8 a 14) y (TV) Valores de talento (0 a 21). Por ahora usaremos la escalada como ejemplo.
Pruebas de talento
Un talento (escalada) se ve así: (Coraje-Destreza-Fuerza) TV: 7. Para probar un personaje en un talento, tira estas estadísticas con un dado de 20 lados e intenta llegar por debajo o igual a la estadística, si lo haces bien De lo contrario, puede usar sus puntos de TV para reducir el rollo con una proporción de 1: 1.
Ejemplo
Un cazador con coraje 12, destreza 13 y fuerza 14 está tratando de trepar a un árbol, su televisor es 7.
Tira un 3, el valor está por debajo de 12, por lo que pasó esa tirada.
Luego saca un 17, 17 es 4 más que 13, por lo que 4 TV se acostumbran con 3 restantes.
Para la última tirada obtienes un 14, punto al pasar.
Se pasan todos los rollos y el cazador logró trepar al árbol, quedan 3 televisores.
Entrada
4 valores en cualquier formato que elija, tomados de la entrada estándar de su idioma. Sin embargo, tiene que estar en este orden.
Por ejemplo, 12 13 14 7or 12,13,14,7o como una matriz {12,13,14,7} o mixta[12, 14, 8], 3
Salida
La posibilidad de con qué frecuencia pasan los rollos.
Por ejemplo (para valores anteriores)0.803
12,14,8,3 = 0.322
11,11,12,11 = 0.840
Para la bonificación: nuevamente el formateo no es el problema aquí, envíalo como quieras pero en el siguiente orden:
failed/with 0/with 1/with 2/with 3/with 4/with 5/with 6/with 7
y así sucesivamente hasta que no quede televisión.
12,13,14,7 = 0.197/0.075/0.089/0.084/0.078/0.073/0.068/0.063/0.273
12,14,8,3 = 0.678/0.056/0.051/0.047/0.168
Desafío y reglas y bonificación
Deberá descubrir, dada la entrada, la posibilidad de pasar las tiradas con una precisión de + - 0.5%.
-20% si su programa también genera posibilidades de pasar con
nTV (ver salida).Este es el código de golf , por lo que gana el código más corto en bytes.
[12, 14, 8], 3?