算法在文本前面!

算法在文本前面!

我正在使用该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}

相关内容