为什么我不能编译这个算法?

为什么我不能编译这个算法?

我正在编译以下算法:

\begin{algorithm}

\caption{Random Projection}

\begin{algorithmic}[1]
    \renewcommand{\algorithmicrequire}{\textbf{Input:}}
    \renewcommand{\algorithmicensure}{\textbf{Output:}}
    \REQUIRE Paired input ($CP_{n\times s}$), User-specific key ($RP_{s\times s}$)
    \ENSURE  Cancelable template ($CT_{n\times s}$)
    \FOR {$i = 1$ to $n$ in $CP_{n\times s}$}
       \FOR {$j = 1$ to $s$ in $CP_{n\times s}$}
          $CT(i,j)$= $CP(i,j) \times RP(i,j)$ 
       \ENDFOR
    \ENDFOR
    \RETURN $CT_{n\times s}$
\end{algorithmic} 
\end{algorithm}

我收到一个错误:出了点问题——可能缺少 \item。\ENDFOR

答案1

评论表明,原作者正在使用该algorithm包。在那里,任何命令行都必须以 开头,而\STATE他的内循环中缺少for。所以

   \FOR {$j = 1$ to $s$ in $CP_{n\times s}$}
      $CT(i,j)$= $CP(i,j) \times RP(i,j)$ 
   \ENDFOR

应该读

   \FOR {$j = 1$ to $s$ in $CP_{n\times s}$}
      \STATE $CT(i,j)$= $CP(i,j) \times RP(i,j)$ 
   \ENDFOR

相关内容