1 votos

¿Cómo puedo modelar las probabilidades para el mayor y el menor de los grupos de dados opuestos?

Esta es una variación de un mecánico de dados Estoy trabajando en ello.

Creas una reserva de d6 de dados de borde y dados de enganche y los tiras todos.

Compara el dado más alto de Borde y el dado más alto de Enganche.

Si el dado del borde es más alto ese es su resultado.

Si el dado de Snag es mayor, el resultado es el más bajo Muñeca de enganche.

Si están empatados, anúlalos y compara el segundo más alto.

Si todos ellos están empatados, mantenga el más bajo el dado se lanza de todos modos.

Ejemplo 01: Tiro 3 dados de borde {3, 5, 6} y 2 dados de enganche {4, 5}. Resultado: 6


Ejemplo 02: Tiro 2 dados de borde {2,5} y 4 dados de enganche {3, 3, 4, 6}. Resultado: 3


Ejemplo 03: Tiro 1 dado de borde {3} y 1 dado de enganche {5}. Resultado: 5


¿Podrían ayudarme a modelarlo en AnyDice?

2voto

Aquí hay una función que implementa esta mecánica:

function: edgesnag EDGE:s SNAG:s {
  loop X over {1..#EDGE} {
    if X@EDGE > X@SNAG { result: X@EDGE }
    if X@EDGE < X@SNAG { result: #SNAG@SNAG }
  }
  result: [lowest of #EDGE@EDGE and #SNAG@SNAG]
}

Como en su pregunta anterior, hemos definido una función edgesnag que espera recibir dos grupos de dados para los dados de borde y los dados de enganche y los lanzará a las secuencias (con :s ) para fijarlos para la inspección dentro de la función. Anydice ordena por defecto los fondos rodados en orden descendente.

A continuación, hacemos un bucle sobre las piscinas para inspeccionar los dados, empezando por el primero y, por tanto, el más alto de cada secuencia. Si el dado de borde es mayor que el dado de enganche, ese es nuestro resultado; devolvemos el valor de ese dado de borde. Si el dado de borde es menor que el dado de enganche, hemos sido "enganchados" (a falta de un término mejor) y nuestro resultado es el dado de enganche más bajo. Si ninguna de estas condiciones se cumple, los dados deben estar empatados y entonces pasamos al siguiente par.

Ten en cuenta que si tuviéramos más dados de borde que de enganche, podríamos acabar comparando un dado de borde con un dado de enganche que no existe. En anydice, si se intenta acceder a un valor inexistente en una secuencia - por ejemplo, 4@{3,2,1} - el valor es 0. Como el valor del dado de enganche inexistente sería 0, el dado de borde ganará esta comparación y ese sería nuestro valor.

El bucle termina cuando hemos comparado el último dado de borde - suponiendo que no hayamos encontrado un par en el que el dado de borde haya ganado y que tampoco nos hayamos enganchado. En este caso, todos los dados de borde han sido anulados, así que tomamos la tirada más baja disponible - encontrada en este caso comparando el último dado de cada secuencia usando el [lowest of X and Y] función incorporada.

Aquí hay un programa de anydice que utiliza esta función y algunas salidas de ejemplo (incluyendo el uso de sus ejemplos dados para demostrar que da el resultado correcto). Resulta que es más eficiente calcular esta versión de su mecánica que la anterior, así que podemos probarla con grupos de dados ligeramente más grandes que la última vez.

Esta versión de tu mecánica no parece tener ningún punto contraintuitivo en el que conseguir más dados de enganche sea mejor o conseguir más dados de borde sea peor - a menos que sea posible tener cero dados de enganche, en cuyo caso añadir un solo dado de enganche aumenta el resultado esperado (ya que es el único dado de enganche, si es más alto que cualquiera de los dados de borde, se elige como resultado, ¡que es mejor que los dados de borde lanzados!) Sin embargo, si se asume un mínimo de 1 dado de enganche en todas las tiradas, esto no es un problema, añadir más dados de enganche siempre empeora el resultado esperado.

JugonesTop.com

Jugonestop es una comunidad para amantes del gaming. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X