1

我正在寻找一种资源,该资源可以解释白皮书中常见的数学运算,即具有最少数学背景的编码人员可以理解编码习语——for循环等。

我经常在不同的方程中看到相同类型的符号,这通常会导致易于理解的算法。对符号含义的概述将大大有助于使学术论文更易于理解。

4

3 回答 3

2

我一直使用这个站点来将复杂的数学运算转换为代码。我从来没有高中毕业。

http://www.wolframalpha.com/
于 2012-05-23T17:58:31.733 回答
2

我能想到的唯一不明显(算术,三角函数等)并且在代码中具有直接等价物的是 sum Σ, 和 product Π

所以类似Σ a[i]的是:

 sum = 0;
 for (i = 0; i < len(a); ++i) sum += a[i];

和一些相关细节:下标(行下方的小数字)通常与数组索引相同(因此iinΣ a[i]可能写得很小,在 的下方和右侧a)。类似地,i值的范围(这里0是 的长度a)可以作为两个小数字给出,就在Σ(开始值,,0在底部,结束值,,,n在顶部)的右侧。

等效产品是Π a[i]

product = 1;
for (i = 0; i < len(a); ++i) product *= a[i];

评论中的更新xan 建议也覆盖矩阵。这些变得复杂,但在最简单的情况下,您可能会看到如下内容:

a[i] = M[i][j] b[j]

(如上所述,iand更有可能是下标)。j这有隐含的循环:

for (i = 0; i < len(a); ++i) {
    a[i] = 0;
    for (j = 0; j < len(b); ++j) a[i] += M[i][j] * b[j]
}

更糟糕的是,这通常会被简单地写成,a = M b并且您需要自己填写所有内容....

更新 2您在下面引用的论文中的第一个等式是w(s[i],0) = alpha[d] * Size(s[i]). 据我所知,这无非是:

double Size(struct s) { ... }

double w(struct s, int x) {
    if (x == 0) return alpha[d] * Size(s);
    ...
}

和其他术语同样看起来很花哨,但实际上并不复杂的函数调用和乘法。请注意, “点”|...|abs(...)乘法(我认为)。

于 2012-05-23T17:59:11.257 回答
1

“通用数学运算”取决于您习惯解决的问题类型。它们的范围可以从简单的算术(+、-、*、/)到微积分(积分、求和、导数、偏微分方程、矩阵等)

“共同”对您和您的开发团队意味着什么?

于 2012-05-23T17:55:35.200 回答