1 votos

¿Cuántas permutaciones legales hay de los resultados de las puntuaciones de habilidad de D&D?

En Dragones y Mazmorras edición 3.5, la generación de puntuaciones de habilidad da como resultado 6 valores, cada uno de los cuales está entre 3 y 18 (inclusive). Pueden repetirse. Cada puntuación va acompañada de un modificador de puntuación de habilidad, que es igual a 0,5*(puntuación de habilidad-10), redondeado hacia abajo. (Nota: si se utiliza un programa de hoja de cálculo, redondear hacia abajo los números negativos es complicado; en su lugar utilizo ((puntuación-IF(ISODD(puntuación),11,10))/2)).

El número de permutaciones de estas puntuaciones no es difícil de calcular: hay 16 puntuaciones válidas, que pueden repetirse, y 6 elementos seleccionados, por lo que se obtienen 16^6 permutaciones. Sin embargo, D&D 3.5e pone dos límites adicionales a lo que constituye una legal puntuación establecida para un personaje jugable.

1) Al menos una de las puntuaciones debe ser 13 o superior, antes de que se aplique cualquier ajuste de otros aspectos de la creación del personaje.

2) La suma de los modificadores de habilidad debe ser de +1 o mejor, de nuevo antes de aplicar cualquier ajuste de otros aspectos de la creación del personaje.

De nuevo, 1) es bastante fácil de resolver: reste todas las permutaciones en las que ninguna puntuación sea 13 o superior (10^6) del resultado inicial. Es la 2) la que me está dando problemas, porque no veo cómo resolverla sin forzarla, y eso son MUCHAS permutaciones que forzar.

1voto

JiminyCricket Puntos 143

Tenga en cuenta que los modificadores de la puntuación de la habilidad son simétricos en torno a $0$ - van desde $-4$ a $+4$ con cada valor que aparece dos veces, excepto $\pm4$ cada uno de ellos sólo se produce una vez. Quieres que la suma sea positiva, así que podemos tomar la mitad del total $16^6$ y restar la mitad del número de conjuntos de puntuaciones con la suma del modificador de puntuación de la habilidad $0$ .

Estos serían fáciles de contar si cada modificador de la puntuación de habilidad ocurriera el mismo número de veces. Dado que $-4$ y $+4$ ocurren sólo una vez, tenemos que tratarlos por separado. Denotemos el número de $-4$ s por $k$ y el número de $+4$ s por $l$ . Puede haber como máximo $3$ de cada uno. Desplazar todos los modificadores hacia arriba en $4$ Así que ahora van desde $0$ a $8$ y necesitan sumar a $24$ . Entonces tenemos $24-8l$ puntos para distribuir en $6-k-l$ cubos con capacidad $1$ a $7$ o, por el contrario $(24-8l)-(6-k-l)=18-7l+k$ puntos sobre $6-k-l$ cubos con capacidad $0$ a $6$ .

Como se ha comentado en Bolas en cubos con capacidad limitada Esto se puede hacer en

$$ \sum_{t=0}^{6-k-l}(-1)^t\binom{6-k-l}t\binom{6-k-l+18-7l+k-7t-1}{6-k-l-1} $$

(donde, en contra de la convención habitual, los coeficientes binomiales se toman como cero si el índice superior es negativo mientras que el índice inferior es positivo). Esto lo tenemos que multiplicar por $2^{6-k-l}$ (ya que cada modificador, excepto $-4$ y $+4$ puede ocurrir de dos maneras diferentes) y $\binom6{6-k-l,k,l}$ (el número de opciones para el $k$ y $l$ contenedores especiales), y la suma sobre $k$ y $l$ .

Por lo tanto, el número de conjuntos de puntuación cuyos modificadores de puntuación de habilidad suman $0$ es

\begin{eqnarray} && \sum_{k=0}^3\sum_{l=0}^32^{6-k-l}\binom6{6-k-l,k,l}\sum_{t=0}^{6-k-l}(-1)^t\binom{6-k-l}t\binom{6-k-l+18-7l+k-7t-1}{6-k-l-1} \\ &=& 2^6\binom6{6,0,0}\left(\binom60\binom{23}5-\binom61\binom{16}5+\binom62\binom95\right)\\ &&+2^5\binom6{5,1,0}\left(\binom50\binom{23}4-\binom51\binom{16}4+\binom52\binom94\right)\\ &&+2^4\binom6{4,2,0}\left(\binom40\binom{23}3-\binom41\binom{16}3+\binom42\binom93\right)\\ &&+2^3\binom6{3,3,0}\left(\binom30\binom{23}2-\binom31\binom{16}2+\binom32\binom92-\binom33\binom22\right)\\ &&+2^5\binom6{5,0,1}\left(\binom50\binom{15}4-\binom51\binom84\right)+2^4\binom6{4,1,1}\left(\binom40\binom{15}3-\binom41\binom83\right)\\ &&+2^3\binom6{3,2,1}\left(\binom30\binom{15}2-\binom31\binom82\right)+2^2\binom6{2,3,1}\left(\binom20\binom{15}1-\binom21\binom81+\binom22\binom11\right)\\ &&+2^4\binom6{4,0,2}\binom40\binom73+2^3\binom6{3,1,2}\binom30\binom72\\ &&+2^2\binom6{2,2,2}\binom20\binom71+2^1\binom6{1,3,2}\left(\binom10\binom70-\binom11\binom00\right)\\ &&+2^0\binom6{0,3,3}\binom{-1}{-1} \\ &=& 1137324\;, \end{eqnarray}

por lo que el número de conjuntos de puntuación cuyos modificadores de puntuación de habilidad suman más de $0$ es

$$ \frac{16^6-1137324}2=7819946\;. $$

Ya hemos restado la mayor parte del $10^6$ conjuntos de puntuación que no tienen puntuación de $13$ o superior, ya que suelen tener modificadores negativos; sólo tenemos que contar los pocos que tienen una suma de modificadores positiva. Esto sólo puede surgir de $12$ s, por lo que tenemos que sumar sobre el número $m$ de $12$ s. Entonces podemos distribuir hasta $m-1$ El modificador negativo apunta al $6-m$ los contenedores restantes. Distribuir hasta $n$ (en lugar de exactamente $n$ ) bolas a $b$ puede lograrse introduciendo una papelera adicional que reciba las bolas no utilizadas, de modo que haya $\binom{n+b}b=\binom{m-1+6-m}{6-m}=\binom{6-1}{m-1}$ tales distribuciones. En primer lugar, ignoremos el hecho de que $-4$ sólo corresponde a una puntuación, por lo que incluimos un factor $2^{6-m}$ para dos puntuaciones por valor de modificador. Entonces el recuento es

$$ \sum_{m=1}^62^{6-m}\binom6m\binom{6-1}{m-1}=3653\;. $$

Ahora hay que restar el número de casos que se han contabilizado dos veces porque incluyen un $-4$ . Sólo hay $6$ de esos, ya que un $-4$ sólo puede ocurrir junto con cinco $+1$ s.

Así, en total hay

$$ 7819946-(3653-6)=7816299 $$

diferentes conjuntos de puntuación admisibles, de acuerdo con el resultado de Alex S. (También escribí Código Java para comprobar los resultados; se ejecuta en aproximadamente un segundo en mi portátil).

0voto

Alex S Puntos 6684

Respuesta parcial.

Aquí hay un script en python que se ejecuta rápidamente para forzar una respuesta de $7,816,299$ .

from math import floor
from time import time

count=0
t1=time();
for a1 in range(3,19):
    for a2 in range(3,19):
        for a3 in range(3,19):
            for a4 in range(3,19):
                for a5 in range(3,19):
                    for a6 in range(3,19):
                        stats=[a1,a2,a3,a4,a5,a6]
                        max_stat=max(stats)
                        net_bonus=sum([floor((score-10)/2) for score in stats])
                        if max_stat>=13 and net_bonus>=1:
                            count+=1
t2=time()
print('allowed stat permutations: '+str(count))
print('computation time: '+str(t2-t1))

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X