有限域乘法高效软件实现与互联网彩票方案
有限域乘法高效软件实现
在有限域乘法的软件实现中,我们致力于提升计算效率和降低内存消耗。下面将详细介绍相关的算法和优化策略。
基本算法与实现
首先,我们将公式(2)用数组 A、B、C 重写为公式(4):
[
\begin{align }
\text{For } t \text{ from } 0 \text{ to } (m/w - 1)\
C[wt] &= \sum_{i = 0}^{m - 1} \left[A[(i + wt) \bmod m] \cdot \left(\sum_{j = 0}^{m - 1} M[i, j]B[(j + wt) \bmod m]\right)\right]
\end{align }
]
公式(4)中方程的总数为 m/w,且一个方程对应公式(1)或公式(2)中的 w 个连续方程。在软件实现中,“·”可计算为两个字的按位与操作,“⊕”可计算为两个字的按位异或操作。以下是公式(4)在 C 语言中的直接实现:
precompute arrays A and B;
for (t = 0; t < (m/w); t++) {
C[w*t] = 0;
for (i = 0; i < m; i++) {
temp = 0;
for (j = 0; j < m; j++)
if (M[i,j]==1) temp ^= B[(j+w*t)%m];
超级会员免费看
订阅专栏 解锁全文
3849

被折叠的 条评论
为什么被折叠?



