Como calcular a distribuição de "roll 4d6, continue rolando novamente 1s e 2s e solte o dado mais baixo" no AnyDice?

5

Estou ingressando em um grupo de D&D. Para gerar cada pontuação de habilidade, o Mestre nos faz rolar 4d6, rolar novamente qualquer 1 ou 2 e depois soltar o dado mais baixo. Se a nova rolagem for um 1 ou 2, rolar novamente e novamente até que o resultado seja 3 ou superior.

Estou curioso sobre a distribuição e me pergunto se o AnyDice poderia fazê-lo. Como posso calcular a distribuição deste método de geração de pontuação de habilidade no AnyDice?

por huginn 10.02.2018 / 01:02

4 respostas

Supondo que você rolar novamente cada d6 até que ele não mostre mais um 1 ou 2, a maneira mais fácil de modelar essa restrição é como um dado personalizado, d {3..6}. Isso representa um dado uniforme que só pode rolar os valores 3, 4, 5 e 6. (Observação: na mesa, você pode substituir o d4 + 2 e obter o mesmo resultado, se quiser rolar uma vez sem rerolls.)

Para manter apenas um subconjunto de dados, use as funções mais or menor.

Assim, podemos mostrar "4d6, rolar novamente quaisquer 1s e 2s e soltar o dado mais baixo" como:

saída [o mais alto 3 de 4d {3..6}]

10.02.2018 / 01:21

Se você continuar rolando até que não haja 1s ou 2s

É o mesmo que rolar dados do lado 4 4 marcados com 3-6. Assim:

saída [o mais alto 3 de 4d {3..6}]

Se você rolar novamente apenas uma vez

Pense no segundo dado que você joga em um 1-2, isso lhe dará um resultado do 1-6. Agora imagine que você faz um novo relançamento se rolar um 3-6, mas todas as faces desse dado são iguais e iguais ao número que você rolou. Agora, combine todos esses "rerolls" em um dado grande com os lados do 36, ele terá faces do 8 marcadas com 3-6 e faces do 2 marcadas com 1-2. Podemos dividir o número de faces por 2 para obter um dado equivalente no lado 18. Assim:

saída [o mais alto 3 do 4d {{3..6}: 4, {1..2}}]

11.02.2018 / 02:40

Rolar um d6 e depois rolar novamente todos os 1s e 2s toda vez que eles aparecerem são funcionalmente idênticos a rolar um d4 e, em seguida, adicionar 2.

Da mesma forma, rolar 1d4 + 2 quatro vezes e tirar o melhor 3 é o mesmo que rolar 1d4 quatro vezes e pegar o melhor 3 e adicionar o 6 (o + 2 dos três melhores dados)

A fórmula a seguir é um pouco menor que a proposta por AlexP e, como evita o uso de d {3..6}, é mais fácil ler mesmo para alguém que não está familiarizado com a sintaxe do AnyDice.

saída [o mais alto 3 de 4d4] + 6
11.02.2018 / 14:14

O solução geral para rolar novamente uma vez é usar uma função auxiliar como esta:

function: ROLL: n reroll BAD: s como REROLL: d {se ROLL = BAD {resultado: REROLL} resultado: ROLO}

Você pode atribuir o resultado dessa função a um dado personalizado e, em seguida, role quantos deles desejar:

X: [d6 reroll {1,2} como d6] saída [mais alto 3 de 4dX]

Para relançar um número ilimitado de vezes, podemos usar um truque de esta resposta por Carcer e passar o "dado vazio" d {} como o REROLL parâmetro, como isso:

Y: [d6 reroll {1,2} como d {}] produz [o mais alto 3 de 4dY]

Ao resumir os resultados da função, o AnyDice simplesmente ignora esses dados vazios, como se as jogadas que os resultaram nunca tivessem acontecido.

No entanto, para dados simples como um único d6, também é possível definir diretamente um dado personalizado que exclui as faces a serem rolar novamente, conforme descrito em Alex P's e Dale M's respostas:

saída [o mais alto 3 de 4d {3..6}]

O truque geral de re-rolagem é mais útil nos casos em que a "matriz" de entrada a ser re-rolada já é o resultado de algum procedimento complexo de rolagem, de modo que as probabilidades de rolagens diferentes não são as mesmas (como em um d6 simples).

Por exemplo, se você deseja calcular, digamos, a distribuição das pontuações de habilidade obtidas rolando 4d6, eliminando o dado mais baixo e depois rolar novamente a pontuação inteira até que seja pelo menos 10, você poderia usar esse código:

output [[o mais alto 3 de 4d6] rolar novamente {3..9} como d {}]
02.08.2019 / 23:37