Probabilidade de rolar uma combinação específica de resultados com o nd6

5

Até agora, consegui descobrir a maioria das coisas que precisava fazer em qualquer dado por conta própria e com a ajuda de várias postagens em fóruns, no entanto, neste caso, meu conhecimento de matemática me falha.

Como calculo a probabilidade de rolar, por exemplo, "1,1,1,1,1-4,1-4" com 7d6 e outros? E como codifico isso em anydice?

O problema é baseado no pool de dados Shadowrun. Se metade ou mais dos seus dados forem um 1, você "falha", o que é um pouco mais do que apenas falhar no teste. Os sucessos são contados no número de 5 + 's no seu pool. Se você falha, mas não obtém sucesso, é uma falha crítica. Portanto, trata-se basicamente da probabilidade de obter uma falha crítica.

por Tanque 17.09.2019 / 08:19

1 resposta

The problem is based on the Shadowrun dice pool. There if half or more of your dice are a 1 you "glitch" which is a bit more than just failing the test. Successes are counted on number of 5+'s in your pool. If you glitch but don't have any successes it's a critical glitch. So this is basically about the probability of getting a critical glitch.

Bem, aqui está um rápido script AnyDice para calcular as chances disso:

função: falha ROLL: s {resultado: 2 * [conta 1 em ROLL]> = #ROLL & [contagem {5,6} em ROLL] = 0} saída [falha 7d6]

A maneira como isso funciona é o seguinte:

  • A função falha ROLL: s espera uma sequência de números como parâmetro. (Isso é o que o :s na definição significa.) Quando recebe um conjunto de dados como 7d6O AnyDice chama automaticamente a função para todas as sequências possíveis (classificadas) de números que podem ser obtidas rolando os dados e resume os resultados em um único dado tendencioso, representando a probabilidade da função retornar cada um dos resultados possíveis quando chamada com um lançamento aleatório de dados .
  • Na função, 2 * [conta 1 no ROLO]> = #ROLL avalia como verdadeiro (1) se pelo menos metade dos números na sequência ROLO são uns e false (0), caso contrário. Similarmente, [contagem {5,6} no ROLO] = 0 avalia como verdadeiro se não houver cinco ou seis em ROLO, e false caso contrário. O operador entre eles é lógico AND: retorna true (por exemplo, 1) somente se ambas as expressões ao redor forem diferentes de zero (ou seja, não forem falsas).

Então, basicamente, não há matemática particularmente sofisticada aqui - o AnyDice resolve o problema com força bruta, testando todos os dados possíveis para ver se é uma falha crítica ou não. (Há a pequeno um pouco de matemática chique envolvido no cálculo das probabilidades de cada classificadas resultado de um rolo 7d6, mas tudo acontece automaticamente nos bastidores.)


Ps. Se você preferir fazer isso em Python, use, por exemplo, o dice_pool função de esta resposta, que faz a mesma coisa que o AnyDice internamente - gera todos os possíveis rolos classificados de um NdX pool e suas respectivas probabilidades. Você pode então escrever um loop simples que resume as probabilidades de todos os rolos que são falhas críticas e produzem isso.

17.09.2019 / 09:54