如何查看算法中的步骤数

如何查看算法中的步骤数

在下面的算法中我使用了包

\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

1) 如何查看第 2 步之后的步骤编号?

2)除了

\renewcommand{\labelenumi}{(\Roman{enumi})} 

获取罗马字体的产品编号?

\begin{algorithm}
\DontPrintSemicolon % Some LaTeX compilers require you to use \dontprintsemicolon    instead
\KwIn{a,b,c,d}
\KwOut{e,r}
Calculate $x$, and $y$\\
Check,
\renewcommand{\labelenumi}{(\Roman{enumi})}
\begin{enumerate}[noitemsep,nolistsep]
\item If  $k \geq n$, then the  $m_{2}$.
\item If  $h \geq j$, then  $m_{1}$.
\end{enumerate}
Otherwise,\\
Initialisation: \textit{$g(0)=nj$}\\
$i=0$\\
Compute $n_{2}$,
\[
n(i)=\frac {a}{b(i)\sqrt{3v}}
\]\\
Update $b$,
\[
b(i+1)=( -\frac{1}{2(g(i)/D}+1)
\]\\
$i=i+1$,\\
Repeat \textit{Steps 3 to 6}, till $|a(i+1)-a(i) |<\epsilon$
\caption{algo of g}
\label{algo:b}
\end{algorithm}

在此处输入图片描述

答案1

出现一些变化和数字:

\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}

\begin{document}

\begin{algorithm}
%\DontPrintSemicolon % Some LaTeX compilers require you to use \dontprintsemicolon    instead
\KwIn{a,b,c,d}
\KwOut{e,r}
Calculate $x$, and $y$\\
Check, \linebreak
%\renewcommand{\labelenumi}{(\Roman{enumi})}
%\begin{enumerate}[noitemsep,nolistsep]
%\item
 (I) If  $k \geq n$, then the  $m_{2}$. 
\linebreak
%\item 
(II) If  $h \geq j$, then  $m_{1}$.\\
%\end{enumerate}
Otherwise,\\
Initialisation: \textit{$g(0)=nj$}\\
$i=0$\\
Compute $n_{2}$,
\[
n(i)=\frac {a}{b(i)\sqrt{3v}}
\]\\
Update $b$,
\[
b(i+1)=( -\frac{1}{2(g(i)/D}+1)
\]\\
$i=i+1$,\\
Repeat \textit{Steps 3 to 6}, till $|a(i+1)-a(i) |<\epsilon$
\caption{algo of g}
\label{algo:b}
\end{algorithm}

\end{document}   

在此处输入图片描述

我不确定应该给哪些行编号,但我希望现在总体思路已经很清楚了。

答案2

以下是使用以下功能的方法algorithm2e形成条件和重复结构。当然,由于您使用 调用包vlined,因此输出也包括此内容。

在此处输入图片描述

\documentclass{article}
\usepackage[linesnumbered,ruled,vlined]{algorithm2e}% http://ctan.org/pkg/algorithm2e
\DontPrintSemicolon
\begin{document}

\begin{algorithm}
  \KwIn{$a$, $b$, $c$, $d$}
  \KwOut{$e$, $r$}
  Calculate~$x$ and~$y$\;
  \lIf{$k \geq n$}{$m_2$}\;
  \lIf{$h \geq j$}{$m_1$}\;
  \Else{%
    \Repeat{$|a(i+1)-a(i)| < \epsilon$}{%
      Initialisation: $g(0) = nj$\;\label{stepA}
      $i=0$\;
      Compute~$n_2$
      \[
        n(i) = \frac{a}{b(i)\sqrt{3v}}
      \]
      \nl Update~$b$
      \[
        b(i+1) = (-\frac{1}{2(g(i)/D} + 1)
      \]
      \nl $i = i + 1$\;
    }
  }
  \caption{My algorithm}
  \label{algo:b}
\end{algorithm}

\end{document}

请注意,您可以使用常规,\label而不必手动引用步骤\ref

答案3

我自己也遇到了这个问题。我的解决方案是在 enumitem 之前和之后放置“{”和“}”,即

{
\begin{enumerate}[noitemsep,nolistsep]
\item If  $k \geq n$, then the  $m_{2}$.
\item If  $h \geq j$, then  $m_{1}$.
\end{enumerate}
}

我希望这个解决方案也适合您(如果您仍然需要它)。

相关内容