Como posso usar o AnyDice para simular o lançamento do 6d6 e o lançamento dos dados mais baixos e mais altos do 2?

9

Em breve, estou executando uma nova campanha de D&D 5e e gostaria de tentar obter estatísticas com alguns guardrails. Fazendo algumas jogadas de teste na mesa, gostei da aparência de rodar 6d6 e depois largar os rolos mais alto e dois mais baixos. Parece que isso geraria uma mediana semelhante ao 4d6 (o mais alto 3), mas com uma distribuição mais restrita. No entanto, eu não conseguia descobrir como modelar isso no AnyDice.

Isso seria realmente fácil de fazer com a função "middle" se você conseguisse arredondar as posições dos dados para cima em vez de para baixo, no entanto, estou interessado em qualquer solução.

por retriever123 15.02.2019 / 09:18

2 respostas

{2..4} @6d6

"... Ensine um homem a pescar ..."

Na documentação, seção Introspecção, o @ O operador é descrito como o operador "acesso":

you can retrieve individual numbers stored inside a value. You can either provide the position of a single value to retrieve, or a sequence of positions, in which case the retrieved values are summed.

6d6 é uma "coleção de dados" e, nessa subseção, diz:

When accessing collection of dice, the dice will be order from highest value to lowest value. So [email protected] will select the highest rolled value, while [email protected] will select the lowest rolled value. {1,2}@3d6 will sum the highest two of the rolled values, discarding the lowest rolled value.

Isso significa alcançar o que você descreveu, você pode escrever {2,3,4} @6d6, que significa: "elimine o resultado mais alto, some os valores mais altos 2nd, 3rd e 4th e descarte o restante".

Contudo...

... fazendo isso e comparando com {1,2,3} @4d6 (4d6 cai mais baixo), você verá que o resultado médio é um pouco menor, sendo apenas marginalmente mais apertado:

insira a descrição da imagem aqui

15.02.2019 / 19:12

O meio função já faz o que você quer

Nos testes, parece que os dados são classificados em ordem decrescente ao selecionar o meio. Isso significa que [3 do meio de 6d6] deve ser exatamente o que você deseja: os dados 2nd, 3rd e 4th após classificar todos os dados 6 do maior para o menor, diminuindo assim o dado 1st (mais alto), bem como os dados 5th e 6th (dois mais baixos).

Para se convencer de que o meio função funciona assim, tente [1 do meio de 2d6]. Você verá que a distribuição resultante é enviesada em favor de valores maiores, o que significa que está selecionando o maior dos dois rolos.

Independentemente disso, apenas no caso de você desejar a alternativa meio que arredonda as posições dos dados para cima e não para baixo, podemos fazer isso facilmente modificando o padrão meio função, que se parece com isso:

function: middle NÚMERO: n de DICE: d {se NÚMERO = #DICE {resultado: DICE} se NÚMERO = 1 {resultado: (1 + (#DICE - 1) / 2) @ DICE} DE: 1 + (#DICE - NUMBER) / 2 PARA: DESDE + NÚMERO - resultado 1: {FROM..TO} @DICE}

Tudo o que precisamos fazer é adicionar um 1 adicional a cada local onde um número é dividido pelo 2, para alterar o arredondamento para o arredondamento para cima:

function: altmiddle NÚMERO: n de DICE: d {se NÚMERO = #DICE {resultado: DICE} se NÚMERO = 1 {resultado: (1 + (#DICE) / 2) @ DICE} FROM: 1 + (#DICE - NÚMERO + 1) / 2 TO: FROM + NUMBER - resultado 1: {FROM..TO} @DICE}

Com essas funções definidas, podemos executar o seguinte:

saída [3 do meio do 6d6] denominada "Posições do meio arredondadas para baixo" saída [altmiddle 3 do 6d6] denominada "Posições do meio arredondadas para cima"

Você notará que aquele usando meio tem uma média mais alta, o que significa que está lançando mais dados baixos do que os altos.

15.02.2019 / 10:01