我正在寻找一个资源,可以解释在白皮书中常见的数学运算,在编码习语方面,数学背景最少的程序员可以理解的,例如循环等等。
我经常在不同的方程中看到相同类型的符号,这通常会产生易于理解的算法概述这些符号的含义将有助于使学术论文更容易理解。
最佳答案
我能想到的唯一不明显的是sum,Σ
和productΠ
(算术、三角函数等),它们在代码中是直接等价的。
所以像Σ a[i]
这样的东西是:
sum = 0;
for (i = 0; i < len(a); ++i) sum += a[i];
还有一些相关的细节:下标(行下面的小数字)通常与数组索引相同(因此
i
中的Σ a[i]
可能写得很小,在a
的下面和右边)。类似地,i
值的范围(这里0
到a
的长度)可以作为正好在Σ
右侧的两个小数字给出(开始值0
,在底部,完成值n
,在顶部)。等效积为:
product = 1;
for (i = 0; i < len(a); ++i) product *= a[i];
xan在评论中建议也覆盖矩阵这些都很复杂,但最简单的说,你可能会看到:
a[i] = M[i][j] b[j]
(如前所述,
Π a[i]
和i
很可能是下标)。它有隐含的循环:for (i = 0; i < len(a); ++i) {
a[i] = 0;
for (j = 0; j < len(b); ++j) a[i] += M[i][j] * b[j]
}
更糟糕的是,通常这会简单地写成
j
,你需要自己填写所有内容。。。。更新2the paper you reference below中的第一个方程是
a = M b
据我所见,这不过是:double Size(struct s) { ... }
double w(struct s, int x) {
if (x == 0) return alpha[d] * Size(s);
...
}
其他术语看起来也很奇特,但实际上并不是复杂的函数调用和乘法。注意
w(s[i],0) = alpha[d] * Size(s[i])
是|...|
而“点”是乘法(我想)。