我正在寻找一种资源,该资源可以解释白皮书中常见的数学运算,即具有最少数学背景的编码人员可以理解编码习语——for循环等。
我经常在不同的方程中看到相同类型的符号,这通常会导致易于理解的算法。对符号含义的概述将大大有助于使学术论文更易于理解。
我正在寻找一种资源,该资源可以解释白皮书中常见的数学运算,即具有最少数学背景的编码人员可以理解编码习语——for循环等。
我经常在不同的方程中看到相同类型的符号,这通常会导致易于理解的算法。对符号含义的概述将大大有助于使学术论文更易于理解。
我一直使用这个站点来将复杂的数学运算转换为代码。我从来没有高中毕业。
http://www.wolframalpha.com/
我能想到的唯一不明显(算术,三角函数等)并且在代码中具有直接等价物的是 sum Σ
, 和 product Π
。
所以类似Σ a[i]
的是:
sum = 0;
for (i = 0; i < len(a); ++i) sum += a[i];
和一些相关细节:下标(行下方的小数字)通常与数组索引相同(因此i
inΣ 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]
(如上所述,i
and更有可能是下标)。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(...)
乘法(我认为)。
“通用数学运算”取决于您习惯解决的问题类型。它们的范围可以从简单的算术(+、-、*、/)到微积分(积分、求和、导数、偏微分方程、矩阵等)
“共同”对您和您的开发团队意味着什么?