javascript - 将数学公式翻译为 JavaScript

标签 javascript math probability dice

我有这个公式:

f(x)=(x^0+x^0+x^1+x^101+x^2+x^202)^n

这基本上是掷 n 个骰子且面显示数值时的概率:

{0,0,1,101,2,202}

如何将其转换为 JavaScript?

我知道我可以使用递归函数来获取每个结果并将它们添加到结果数组中,但是超过 9 个骰子就会变得很长。

编辑:请注意 x 不是变量。这是一些奇特的数学符号,代表我忘记了概率。

最佳答案

您问题中的x是一个形式变量,您要求一个过程来计算该变量中形式多项式的幂。这是一个快速实现。警告:我还没有执行它,无论如何它都缺乏润色。但我希望你能明白。

function polynomial_unit() {
  return [1]; // Represents 1 = 1x^0
}

function polynomial_mult(x, y) {
  var z = Array.apply(null, new Array((x.length + y.length - 1))).map(Number.prototype.valueOf,0);
  for(var i = 0; i < x.length; i++) {
    for(var j = 0; j < y.length; j++) {
      z[i+j] += x[i]*y[j];
    }
  }
  return z;
}

function generic_exp(base, exponent, mult, unit) {
  var t = unit;
  while (exponent > 1) {
    if (exponent%2 == 1) t = mult(t, base);
    base = mult(base, base);
    exponent = Math.floor(exponent/2);
  }
  return mult(t, base);
}

function Wildhorn(n) {
  var f = Array.apply(null, new Array(203)).map(Number.prototype.valueOf,0);
  f[0] = 2; f[1] = 1; f[2] = 1; f[101] = 1; f[202] = 1;
  return generic_exp(f, n, polynomial_mult, polynomial_unit());
}

关于javascript - 将数学公式翻译为 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26125981/

相关文章:

javascript - onClick 将图像存储在 HTML5 本地存储中

java jama数组问题

java - 为什么这个随机值的分布是 25/75 而不是 50/50?

matlab - 如何在 MATLAB 中对数据进行多元正态分布拟合?

javascript - jQuery 函数 .on 适用于 1.8.3 但不适用于 1.9.1

javascript - 如何将 jQuery slider 的值传递给 onclick 事件?

javascript - 动态添加成员到 javascript 对象

ios - 在 iOS 中保持纵横比的同时缩放坐标

javascript - 如何通过算法为表格对 Angular 线的对 Angular 线着色

python - sklearn 的 MLP predict_proba 函数在内部是如何工作的?