我正在使用该book
课程编写一份文档。
有时我需要在文本中放置一个算法。我正在使用该algorithm2e.sty
包来编写我的算法。
所以,我写道
\begin{tabular}{cc}
\begin{minipage}{0.5\linewidth}
\begin{algorithm}[H]
\mbox{\textbf{KeyGen($\lambda$)}}
\\$sk \xleftarrow{\$} (2\mathbb{Z} + 1) \cap [2^{\eta-1},\;
2^{\eta})$\\
\Repeat{$x_{0}$ for ímpar $[x_{0}]_{r}$ for par}{$x_{i}
\xleftarrow{\$} D_{\gamma,\rho}(p)$ em $i = 0,...,\tau$}
$pk = \langle x_{0},x_{1},...,x_{\tau} \rangle$
\end{algorithm}
\end{minipage}
&
\begin{minipage}{0.5\linewidth}
\begin{algorithm}[H]
\mbox{\textbf{Encrypt(pk,m)}}
\\escolher um subconjunto aleatório $S \subseteq \{ 1,2,...,\tau \}$\\
$r \xleftarrow{\$} (-2^{\eta},\; 2^{\eta})$\\
$c \gets [m + 2r + 2\sum_{i\in S}x_i ]_{x_{0}}$
\end{algorithm}
\end{minipage}
\end{tabular}
\begin{tabular}{ccc}
\begin{minipage}{0.33\linewidth}
\begin{algorithm}[H]
\mbox{\textbf{Decrypt(sk,c)}}
\\$m' \gets (c\; mod\; sk)\; mod\; 2$
\end{algorithm}
\end{minipage}
&
\begin{minipage}{0.3\linewidth}
\begin{algorithm}[H]
\mbox{\textbf{Addition($c_{1},c_{2}$)}}
\\$c \gets c_{1} + c_{2}$
\end{algorithm}
\end{minipage}
&
\begin{minipage}{0.2\linewidth}
\begin{algorithm}[H]
\mbox{\textbf{Multiplication($c_{1},c_{2}$)}}
\\$c \gets c_{1} \cdot c_{2}$
\end{algorithm}
\end{minipage}
\end{tabular}
但是,当我编译它时,算法出现在文本前面!我该如何解决这个问题?
此致!
答案1
作为环境的可选参数,algorithm
您可以使用其中之一Hhtbp
,方式类似于在figure
环境中使用它们。
和H
参数h
强制算法保持不变,但如果你使用H
算法不再是一个漂浮的物体...
因此,您可能想使用h
而不是H
。
编辑
我修改了您提供的最后一个代码作为 MWE。看看它是否可行,或者将其用作起点
\begin{algorithm}[h]
\begin{tabular}{cc}
\begin{minipage}{0.5\linewidth}
\mbox{\textbf{KeyGen($\lambda$)}}
\\$sk \xleftarrow{\$} (2\mathbb{Z} + 1) \cap [2^{\eta-1},\;
2^{\eta})$\\
\Repeat{$x_{0}$ for ímpar $[x_{0}]_{r}$ for par}{$x_{i}
\xleftarrow{\$} D_{\gamma,\rho}(p)$ em $i = 0,...,\tau$}
$pk = \langle x_{0},x_{1},...,x_{\tau} \rangle$
\end{minipage}
&
\begin{minipage}{0.5\linewidth}
\mbox{\textbf{Encrypt(pk,m)}}
\\escolher um subconjunto aleatório $S \subseteq \{ 1,2,...,\tau \}$\\
$r \xleftarrow{\$} (-2^{\eta},\; 2^{\eta})$\\
$c \gets [m + 2r + 2\sum_{i\in S}x_i ]_{x_{0}}$
\end{minipage}
\end{tabular}
\end{algorithm}
\begin{algorithm}[h]
\begin{tabular}{ccc}
\begin{minipage}{0.33\linewidth}
\mbox{\textbf{Decrypt(sk,c)}}
\\$m' \gets (c\; mod\; sk)\; mod\; 2$
\end{minipage}
&
\begin{minipage}{0.3\linewidth}
\mbox{\textbf{Addition($c_{1},c_{2}$)}}
\\$c \gets c_{1} + c_{2}$
\end{minipage}
&
\begin{minipage}{0.2\linewidth}
\mbox{\textbf{Multiplication($c_{1},c_{2}$)}}
\\$c \gets c_{1} \cdot c_{2}$
\end{minipage}
\end{tabular}
\end{algorithm}