使用多个骰子计算给定骰子掷骰的几率

时间:2020-07-23 13:03:41

标签: javascript statistics

我有不同数量的骰子和骰子类型(例如4面,6面等),但从未混合过骰子类型。我需要使用骰子和边的任何变化来计算某个结果的概率。例如,给定3个六面骰子(我们将其写为3d6),掷出3的概率为0.46%(100/6 ^ 3 = 0.46)。

概率=预期结果数÷可能结果数

  • 可能结果的数量:骰子数量的幂次方的数量,例如。 6 ^ 3。
  • 所需结果数:?

此应用程序是骰子公式可以具有修饰符,例如。 3d6-5,我想计算结果为零或更低的机会。

因此,我在想通过将的百分比相加得出总机会。示例(使用anydice.com),对于(3d6)-5,我添加了3(0.46%),4(1.39%),5(2.78%)掷骰的机会,得出的结论是等于或小于0的滚动机会为4.63%。

Anydice.com

我正在寻找一种以某种方式在Javascript中执行此操作的有效方法。

编辑:订单很重要! 6、1和2的卷与1、2和6的卷不同。这不是组合问题,正如Barmar建议的Medium文章所述。

编辑:注释(正确地)要求输入代码。由于我没有关于如何计算的假设,因此我没有太多的目的,但这就是我要做的:

function dieAvg(sides) {
    return ((sides+1)/2);
}

// dice = number of dice
// die = sides, eg. 6 for a square dice
// mod = a modifier, positive or negative to apply to the result
function getDiceStats(dice, die, mod) {

    let avg = (dieAvg(die)*dice) + mod;
    let min = dice + mod;
    let max = die*dice) + mod;
    let zeroChance = 0; // TODO!

    return [min,max,avg, zeroChance];
}

一些相关的问题(java):Calculate the number of ways to roll a certain number

0 个答案:

没有答案
相关问题