Eu rolo um d20.
Se eu tiver uma escolha entre d20 + x com vantagem ou d20 + y sem vantagem, que escolha eu faço para maximizar o resultado? Quais são os valores de xey em que a escolha muda (se é que muda mesmo)?
Suponha x <y.
Eu rolo um d20.
Se eu tiver uma escolha entre d20 + x com vantagem ou d20 + y sem vantagem, que escolha eu faço para maximizar o resultado? Quais são os valores de xey em que a escolha muda (se é que muda mesmo)?
Suponha x <y.
A primeira coisa que veremos é uma tabela que representa as chances de rolar finalmente um determinado controlador de domínio, dado um d20 com ou sem vantagem (ainda não há modificadores).
\ begin {array} {r | llll} \ text {CD Natural} & \ text {Advantage} & \ text {No Advantage} & \ text {Difference} & \ text {Eq. Modificador simples} \\ \ hline \ text {DC 1-} e \ text {100.000%} e \ text {100.000%} e \ text {0.000%} e 0 \\ \ text {DC 2} e \ text {99.750 %} & \ text {95.000%} & \ text {4.750%} & 0.95 \ (1) \\ \ text {DC 3} e \ text {99.000%} & \ text {90.000%} e \ text {9.000% } & 1.8 \ (2) \\ \ text {DC 4} e \ text {97.750%} e \ text {85.000%} e \ text {12.750%} e 2.55 \ (3) \\ \ text {DC 5} & \ text {96.000%} & \ text {80.000%} & \ text {16.000%} & 3.2 \ (4) \\ \ text {DC 6} & \ text {93.750%} e \ text {75.000%} & \ text {18.750%} e 3.75 \ (4) \\ \ text {DC 7} e \ text {91.000%} e \ text {70.000%} e \ text {21.000%} e 4.2 \ (5) \\ \ texto {DC 8} e \ text {87.750%} e \ text {65.000%} e \ text {22.750%} e 4.55 \ (5) \\ \ text {DC 9} e \ text {84.000%} e \ text {60.000%} e \ text {24.000%} e 4.8 \ (5) \\ \ text {DC 10} e \ text {79.750%} e \ text {55.000%} e \ text {24.750%} e 4.95 \ ( 5) \\ \ text {DC 11} e \ text {75.000%} e \ text {50.000%} e \ text {25.000%} e 5 \\ \ text {DC 12} e \ text {69.750%} e \ texto {45.000%} e \ text {24.750%} e XNU MX \ (4.95) \\ \ text {DC 5} e \ text {13%} e \ text {64.000%} e \ text {40.000%} e 24.000 \ (4.8) \\ \ text {DC 5} e \ texto {14%} e \ text {57.750%} e \ text {35.000%} e 22.750 \ (4.55) \\ \ text {DC 5} e \ text {15%} e \ text {51.000%} e \ text {30.000%} e 21.000 \ (4.2) \\ \ text {DC 5} e \ text {16%} e \ text {43.750%} e \ text {25.000%} e 18.750 \ (3.75) \\ \ text { DC 4} e \ text {17%} e \ text {36.000%} e \ text {20.000%} e 16.000 \ (3.2) \\ \ text {DC 4} e \ text {18%} e \ text {27.750 %} & \ text {15.000%} e 12.750 \ (2.55) \\ \ text {DC 3} e \ text {19%} e \ text {19.000%} e \ text {10.000%} e 9.000 \ (1.8) \\ \ text {DC 2} e \ text {20%} e \ text {9.750%} e \ text {5.000%} e 4.750 \ (0.95) \\ \ text {DC 1 +} e \ text {21%} & \ text {0.000%} e \ text {0.000%} e 0.000 \\ \ end {array}
A + 1 em uma rolagem sem vantagem sempre aumentará as chances de rolar um determinado número exatamente em pontos percentuais 5. Por outro lado, um teste de + 1 para um Advantage aumentará suas chances em uma quantidade igual a subir uma linha nessa tabela: um cheque DC7 feito com + 1 é equivalente a um cheque DC6 feito com + 0. Uma verificação do DC20 feita com vantagem e um modificador + 1 é equivalente a uma verificação do DC19 feita com + 0, que constitui uma melhoria de ponto percentual do 9.250.
Existem algumas observações casuais que podemos fazer:
Voltando à pergunta original: considerando dois rolos, 1d20 + x / Adv e 1d20 + y / NoAdv, qual é o melhor? Bem, conforme estabelecido, isso depende do CD da verificação, mas para obter os resultados desta tabela:
Os Rolls de Ataque são um pouco estranhos, porque você não se importa mais em passar no cheque; você também se importa com o número natural por causa de acertos e erros críticos.
A maioria das contas ainda dá uma olhada: se tudo o que importa é bater / desaparecer, a tabela acima pode ser usada, pois os cenários em que um Natural 2 é atingido e um Natural 19 não é muito raro no 5e. Se, no entanto, você se preocupa mais com os Crits / Auto-Misses, deve introduzir um "fator de subjetividade", que pode definir como quiser: é importante para você obter um acerto crítico (ou evitar uma crítica) senhorita)? Então sempre vá Advantage. Caso contrário, use a tabela acima. Geralmente, mantenho a mesa pessoalmente, mas "fator de embreagem" é uma daquelas coisas nebulosas que não podem ser definidas objetivamente; portanto, você precisará fazer isso por si mesmo.
Vai depender do que você está tentando alcançar. Por exemplo, se você precisar entrar em contato com o DC 25 e \ $ x = 4 \ $ e \ $ y = 5 \ $, a vantagem no rolo com \ $ x \ $ não importa; você nunca vai rolar mais alto que o 24. Com o + 5, você terá pelo menos uma chance de% de 5.
Aqui (role para baixo até "Vantagem versus bônus simples") é uma tabela que mostra qual bônus (diferença entre x e y) corresponde a ter vantagem ou não.
(fonte: Zero Hit Points)
Se você se preocupa apenas em maximizar o resultado esperado, em oposição às suas chances de atingir um número alvo específico (por exemplo, você pode estar fazendo um teste contestado contra outra pessoa, como em um agarrarou, caso contrário, não sabe o número de destino com antecedência), essa é uma comparação bastante simples. A vantagem de obter um rolo d20 aumenta o resultado esperado de uma média de 10.5 para 13.82 (ilustrado por este programa anydice); esse é um benefício do + 3.32.
Portanto, para que um rolo sem vantagem tenha um resultado esperado mais alto do que um rolo com vantagem, o modificador no rolo normal precisa ser quatro ou mais pontos melhor que o modificador no rolo com vantagem. + O 3 com vantagem é pior que o + 7 normalmente, e assim por diante.
Primeiro, subtraia \ $ x \ $ ambos de \ $ y \ $ e do número de destino contra o qual você está rolando. Então olha esse gráfico:
No gráfico, encontre a posição no eixo horizontal que corresponde ao número de destino (menos \ $ x \ $) que você está tentando atender ou exceder, e a linha colorida que corresponde ao bônus extra \ $ yx \ $ ao rolo sem vantagem. Se essa linha colorida for maior que a linha preta curva nessa posição no eixo horizontal, você deverá escolher o bônus mais alto do que a vantagem.
(Especificamente, as várias linhas no gráfico mostram a probabilidade de atingir ou exceder um determinado número de destino com vários testes: a linha curva preta é para d20 com vantagem, mas sem bônus, enquanto as cinco linhas retas coloridas diferentes em cima são para d20 + 1 para d20 + 5.)
Ou, para resumir, você deve escolher um \ $ + y \ $ bônus sobre vantagem \ $ + x \ $ quando...
(Como observado por Xirema, as coisas podem mudar um pouco se você estiver, por exemplo, fazendo uma jogada de ataque e se preocupando com crits. Rolar com vantagem tem uma chance de 9.75% de dar a você um 20 natural e apenas uma chance de 0.25% de um 1 natural, enquanto que com um teste de d20 normal, os 1s e 20s aparecem 5% do tempo cada. Se essas diferenças nas probabilidades dos críticos valem a pena ser negociadas por uma chance um pouco pior de acertar depende do CD alvo e do quanto você valoriza os crits.)
tl dr dr- Assumindo que nenhum teste é certo, então a vantagem tem melhores chances se$$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1 {\ phantom {{} ^ {2}}}} <20 \ tag {1} \,. $$Aqui está um script C # online para brincar com isso. Detalhes na parte inferior desta resposta.
Você tem que vencer um \ $ \ text {DC} = 10. \ $
Você tem duas opções:
Role normalmente com um bônus de \ $ + 5. \ $
Role com vantagem e um bônus de \ $ + 1. \ $
Ligue isso \ $ \ nome do operador {Eq.} {\ left (1 \ right)} \ $ encontrar:$$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1 {\ phantom {{} ^ {2}}}} ~ = ~ \ frac {\ left (10 - 1 - 1 \ right) ^ 2} {10 - 5 - 1} ~ = ~ \ frac {8 ^ 2} {4} ~ = ~ 16 ~ <~ 20 \,. $$
Desde \ $ 16 <20, \ $ essa desigualdade é \ $ \ texttt {TRUE}, \ $ e, portanto, rolar com vantagem é melhor.
Por outro lado, se o \ $ \ text {DC} \ $ foram \ $ 17 \ $ em vez de \ $ 10, \ $ então a desigualdade teria reduzido a$$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1 {\ phantom {{} ^ {2}}}} ~ = ~ \ frac {\ left (17 - 1 - 1 \ right) ^ 2} {17 - 5 - 1} ~ = ~ \ frac {{15} ^ 2} {11} ~ = ~ \ sim 20.45 ~ <~ 20 \ ,, $$ e como \ $ \ sim 20.45 <20 \ $ é \ $ \ texttt {FALSE}, \ $ isso significa que as probabilidades não são melhores quando se obtém vantagem. Portanto, nesse caso, seria melhor rolar normalmente com \ $ + 5 \ $, em vez de com \ $ + 1 \ $ e vantagem. Explicação Primeiro: Se qualquer uma das opções for certa, faça-o. Se nenhuma das opções tiver chance, nada poderá ser feito de qualquer maneira. Portanto, isso deixa apenas o caso em que ambas as opções têm alguma possibilidade não certa. Então, as chances de não conseguir vencer um CD em um único lançamento são $$ P _ {\ text {roll}} ~ = ~ 3 \, \ left (\ left [\ text {DC} \ right] - \ left [\ texto {bônus} \ direita] - 3 \ direita) \, \% \ ,, $$e as chances de não conseguir vencer um CD com vantagem são$$ P _ {\ begin {array} {c} \ text {role com} \\ [- 10px] \ text {vantagem} \ end {array}} ~ = ~ P _ {\ text {roll}} ^ 2 ~ = ~ \ left (5 \, \ left (\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] - 1 \ right) \, \% \ right) ^ 2 ~ = ~ 0.25 \, \ left (\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] - 1 \ right) ^ 2 \, \% \,. $$
Portanto, suas chances de falha com vantagem são menores quando $$ 0.25 \, \ left (\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] _ {\ text {vantagem}} - 1 \ right) ^ 2 \, \% ~ <~ 5 \, \ left (\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] _ {\ text {normal}} - 1 \ right) \, \% \ ,, $$ or $$ \ frac {\ left (\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] _ {\ text {vantagem}} - 1 \ right) ^ 2} {\ left [\ text {DC} \ right] - \ left [\ text {bonus} \ right] _ {\ text {normal}} - 1} ~ <~ 20 \ ,. $$
Para tornar isso um pouco mais intuitivo, vamos escrever como $$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1} ~ <~ 20 \, . $$
O tl dr dr o conselho recomenda não rolar com vantagem quando as probabilidades são as mesmas. Eu escolhi essa convenção, pois é menos trabalhoso. Mas, se alguém gosta de rolar, então pode rolar com vantagem se $$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1 {\ phantom {{} ^ {2}}}} \ le 20 \,. $$
A lógica acima pressupõe que o d20-die é justo. Caso contrário, acho que rolar sem vantagem é um pouco melhor do que seria normalmente porque um dado injusto parece ter menos variabilidade entre os testes. Como a maioria dos dados provavelmente não é perfeitamente justa, um otimizador de hardcore pode preferir rolar sem vantagem quando$$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - 1 \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - 1 {\ phantom {{} ^ {2}}}} \ aprox 20 \,. $$
O \ $ `` 20 "\ $ na desigualdade não é coincidência; corresponde ao "20" em "d20". Da mesma forma, o \ $ `` 1 "\ $ corresponde ao valor mínimo da matriz. Portanto, se outro tipo de dado for usado, essa desigualdade pode ser generalizada para$$ \ frac {\ left (\ text {DC} - \ text {bonus de vantagem} - \ text {valor mínimo do dado} \ right) ^ 2} {\ text {DC} - \ text {bônus normal} - \ text {valor mínimo da matriz} {\ phantom {{} ^ {2}}}} ~ <~ \ text {valor máximo da matriz} - \ text {valor mínimo da matriz} + 1 \,. $$
A derivação acima se concentrou na probabilidade de falha, e não na probabilidade de sucesso, porque a matemática teria sido um pouco mais feia por ter vantagens se focássemos em maximizar o sucesso (em vez de minimizar o erro). No entanto, se alguém fizer o mesmo cálculo para rolar com desvantagem, a matemática deve ser mais limpa se você a derivar, concentrando-se em maximizar o sucesso. A razão para isso é que a vantagem / desvantagem requer uma segunda rolagem de matriz somente em caso de falha / sucesso da primeira rolagem.
Eu ia anexar um snippet de JavaScript aqui, mas acho que esse recurso não está neste StackExchange. Assim, aqui está um script c # que pode ser executado online.
notas:
Para usá-lo, ligue Relatório (dc, bonus_normal, bonus_advantage);
, e dirá qual é o melhor.
Atualmente, é pré-carregado para ligar Relatório (10, 5, 1);
e Relatório (17, 5, 1);
para demonstrar o exemplo dado próximo ao topo desta resposta. Isso deve retornar:
For DC = 10 Bonus (normal) = 5 Bonus (advantage) = 1: Your odds are better with the power of ADVANTAGE! For DC = 17 Bonus (normal) = 5 Bonus (advantage) = 1: Advantage is for losers; roll normally!
Por padrão, ele usa um d20, com um valor mínimo de 1
e um valor máximo de 20
. Esses dois valores podem ser alterados no código.
\ $ \ nome do operador {Eq.} {\ left (1 \ right)} \ $ (e sua generalização, conforme usado neste script) supõem que, se as probabilidades não puderem ser melhoradas por vantagem, você prefere rolar normalmente (já que é menos rolante).
\ $ \ nome do operador {Eq.} {\ left (1 \ right)} \ $ assume que o sucesso e o fracasso são possíveis com vantagem e rolamento normal. Este script verifica se é verdade antes de usar \ $ \ nome do operador {Eq.} {\ left (1 \ right)}. \ $
Código fonte (C #):
using System; public class Program {// Um d20 típico tem um valor mínimo de 1 e um máximo de 20: public const long MINIMUM_DIE_VALUE = 1; const público longo MAXIMUM_DIE_VALUE = 20; public static void RunExample () {Report (10, 5, 1); Relatório (17, 5, 1); } public static void Report (longo dc, longo bonus_normal, longo bonus_advantage) {var stringMessage = "For \ tDC =" + dc.ToString () + "\ tBonus (normal) =" + bonus_normal.ToString () + "\ tBonus (vantagem) = "+ bonus_advantage.ToString () +": "+ System.Environment.NewLine; if (ShouldRollWithAdvantage (dc, bonus_normal, bonus_advantage)) {stringMessage + = "Suas chances são melhores com o poder de ADVANTAGE!"; //Console.WriteLine("Suas chances são melhores com o poder de ADVANTAGE! "); } else {stringMessage + = "A vantagem é para perdedores; role normalmente!"; //Console.WriteLine("Advantage é para perdedores; role normalmente! "); } Console.WriteLine (stringMessage); Console.WriteLine (); } public static bool ShouldRollWithAdvantage (longo dc, longo bonus_normal, longo bonus_advantage) {// Case 1: // Se o rolamento com vantagem não for bem-sucedido, basta rolar normalmente. // Não importa se a rolagem normalmente não pode ser bem-sucedida, porque // se você falhar de qualquer maneira, também poderá rolar uma vez. if (dc - bonus_advantage> MAXIMUM_DIE_VALUE) {return false; } // Case 2: // Se a rolagem sem vantagem não for bem-sucedida, role com vantagem. if (dc - bonus_normal> MAXIMUM_DIE_VALUE) {return true; } // Case 3: // Se a rolagem sem vantagem sempre tiver êxito, role sem vantagem. if (dc - bonus_normal <= MINIMUM_DIE_VALUE) {return false; } // Case 4: // Se a rolagem com advntage sempre for bem-sucedida, role com vantagem. if (dc - bonus_advantage <= MINIMUM_DIE_VALUE) {return true; } // Case 5: // Como rolar com vantagem e rolar sem vantagem são // possíveis, mas não garantidos, comparamos suas chances de sucesso. // // Este método verifica se // (DC - bonus_advantage - 1) ^ 2 // é menor que // 20 * (DC - bonus_normal - 1) // em vez da fração para evitar valores de ponto flutuante. {var leftHandSide = (dc - bonus_advantage - MINIMUM_DIE_VALUE); leftHandSide * = leftHandSide; var rightHandSide = (MAXIMUM_DIE_VALUE - MINIMUM_DIE_VALUE + 1) * (dc - bonus_normal - MINIMUM_DIE_VALUE); var shouldRollWithAdvantage = leftHandSide <rightHandSide; return shouldRollWithAdvantage; }} private static bool TryValidateProgramConstants (string de saída errorMessage) {if (! (MINIMUM_DIE_VALUE <MAXIMUM_DIE_VALUE)) {errorMessage = "O valor máximo da matriz deve ser maior que o valor mínimo da matriz."; retorna falso; } if (MINIMUM_DIE_VALUE <-1000) {errorMessage = "Valor mínimo da matriz razoavelmente baixo."; retorna falso; } if (MAXIMUM_DIE_VALUE> 1000) {errorMessage = "Valor máximo da matriz excessivamente alto."; retorna falso; } errorMessage = padrão (string); return true; } public static void Main () {string errorMessage; if (TryValidateProgramConstants (out errorMessage)) {RunExample (); } else {Console.WriteLine ("Erro na validação do programa; abortando a execução."); if (! string.IsNullOrWhiteSpace (errorMessage)) {Console.WriteLine (errorMessage); }}}}