A resposta da Doppelgreener é boa se o jogador deve sempre rolar novamente seu dado mais baixo, não importa o que eles originalmente rolaram. No entanto, se usar a habilidade for opcional, o jogador provavelmente escolherá não usá-la se rolar, digamos, duas duplas na primeira jogada de 2d12.
Em geral, é difícil modelar matematicamente esses processos opcionais de tomada de decisão, já que a decisão racionalmente ótima pode depender do objetivo específico do jogador (para não mencionar que os jogadores são humanos e, portanto, muitas vezes não agem racionalmente! ). No entanto, neste caso, uma classe razoavelmente razoável de regras de tomada de decisão a serem consideradas é aquela em que o jogador rola novamente o dado mais baixo somente quando é menor do que um determinado limite fixo. De fato, se o objetivo do jogador é simplesmente maximizar o resultado médio esperado de sua jogada, sua estratégia ideal é rolar novamente um dado somente quando o valor original desse dado for menor que a média esperada do reroll (que, para um d12 é (1 + 12) / 2 = 6,5).
Aqui está um script AnyDice básico para modelar essa estratégia de tomada de decisão:
function: reroll lowest of ROLL:s as REROLL:d if less than MIN:n {
LOWEST: (#ROLL)@ROLL \ the lowest die is sorted last \
if LOWEST >= MIN {
result: ROLL + 0
} else {
REST: {1..#ROLL-1}@ROLL \ all but the lowest die \
result: REST + REROLL
}
}
output [reroll lowest of 2d12 as d12 if less than 7] named "2d12 replace lowest if < 7"
Observe que a função no código acima é genérica o suficiente para permitir tamanhos de conjuntos de dados iniciais arbitrários (embora somente o dado mais baixo seja novamente rerollado) e limites, e até fornece a opção de rolar novamente com um dado diferente do que o conjunto original , se isso for desejado.
Olhando para a saída do script, podemos ver que essa estratégia de "rolar mais baixo se menos de 7" supera significativamente tanto "sempre rolar novamente" quanto "nunca rolar novamente":
É claro que também podemos considerar limites diferentes de 7 (& 6,5) . No entanto, as estatísticas de resumo revelam que, pelo menos no que se refere ao resultado médio esperado, 7 é de fato o limite ideal para a nova rolagem de um d12.
Tudo o que foi dito, outras regras de tomada de decisão ainda podem melhorar ainda mais em circunstâncias específicas. Por exemplo, se o jogador estiver tentando rolar para atender ou exceder um determinado número de destino, a regra ótima natural e provável é simplesmente rolar novamente se a soma do rolar original for menor que o alvo e deixar o rolar original de outra forma.
É claro que podemos modelar o mesmo em AnyDice :
function: roll ROLL:s vs TARGET:n with optional REROLL:d reroll {
SUM: ROLL + 0 \ force the sequence to be summed into a single number! \
if SUM >= TARGET {
\ no need to reroll, since we've already met the target \
result: 1
} else {
\ discard and reroll the lowest die \
REST: {1..#ROLL-1}@ROLL
result: REST + REROLL >= TARGET
}
}
loop TARGET over {2 .. 24} {
output 2d12 >= TARGET named "2d12 vs [TARGET]"
output [roll 2d12 vs TARGET with optional d12 reroll] named "2d12 vs [TARGET] with optional reroll"
}
Nesse caso, infelizmente não conseguimos obter gráficos tão bons, já que cada comparação com o número de destino apenas gera 0 se o teste falhar e 1 se for bem-sucedido. Ainda assim, olhando para a visão "transposta" (que eu tenho ligado diretamente acima), podemos ver que permitir a rolagem é um pouco melhor do que conceder ao jogador +3 para sua rolagem . Por exemplo, um teste 2d12 não modificado tem 61,81% de chance de atingir um alvo de 12, enquanto 2d12 com uma rolagem opcional tem 64,53% de chance de atingir 15 de chance, e 56,71% de chance de atingir uma meta de 16.