我正在尝试编写算法。但是,我无法使用\While
命令,因为我收到一条错误消息,说some blocks are not closing.
我真的不知道如何解决这个问题。有什么帮助吗?
这是我使用的代码。**请注意,我从这个网站获取了这个示例。将算法的输入和输出左对齐。
以下是代码:
\documentclass[sigconf]{acmart}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\begin{document}
\begin{algorithm}
\caption{Dsfdgfgskj sdfgfkjsdl sdfggjlkj fgsdt}
\label{alg:ALG1}
\begin{algorithmic}
\Require $x$ - decision tree
\Ensure $abc$ is $x$ in Txx Bxxxxx Gxxxx
我想\While
在这里使用命令。像这样:
\While{(not converged \& i < maximum number of iteration)}{
\Function {UpdateNodes}{$x$}
\If { $wrejkwe$ ($rw$) trwer tewwerl }
% \COMMENT {
\State {jklrjkljfgkljlkj kjkldfj gfdsdf }
\State Set fdgsdsd
\ForAll {$j=1$ to $N (x)$}
\State Call $fgsd(x)$
\State Set $sfgdfgd =sfdg + fgds $
\EndFor
\EndIf
\EndFunction
}##end of While.
\end{algorithmic}
\end{algorithm}
\end{document}
\While
当我尝试使用命令时出现错误。
答案1
您应该删除任何#
(%
用于注释),置于<
数学模式并用结束 while 循环\EndWhile
。
\documentclass[sigconf]{acmart}
\usepackage{algorithm}% http://ctan.org/pkg/algorithms
\usepackage{algpseudocode}% http://ctan.org/pkg/algorithmicx
\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}
\begin{document}
\begin{algorithm}
\caption{Dsfdgfgskj sdfgfkjsdl sdfggjlkj fgsdt}
\label{alg:ALG1}
\begin{algorithmic}
\Require $x$ - decision tree
\Ensure $abc$ is $x$ in Txx Bxxxxx Gxxxx
\While{(not converged \& $i < \text{maximum number of iteration}$)}
\Function {UpdateNodes}{$x$}
\If { $wrejkwe$ ($rw$) trwer tewwerl }
% \COMMENT {
\State {jklrjkljfgkljlkj kjkldfj gfdsdf }
\State Set fdgsdsd
\ForAll {$j=1$ to $N (x)$}
\State Call $fgsd(x)$
\State Set $sfgdfgd =sfdg + fgds $
\EndFor
\EndIf
\EndFunction
\EndWhile
\end{algorithmic}
\end{algorithm}
\end{document}