我想编写一个算法,我有下面显示的代码段,但它提供了多个错误,例如无法识别输入和输出命令以及我收到丢失\endcsname
错误。此外,行号未插入,有什么想法可以修复所有错误并插入行号吗?
\documentclass[a4paper]{paper}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{algorithm}
\usepackage{algpseudocode}
\begin{document}
\begin{algorithm}[H]
\Input{A vector \textbf{a}}
\Output{Bit reversed vector}
\Function{NTT}{$\textbf{a}$}
\State $m \gets 1$
\State $k \gets n / 2$
\While{$m < n$}
\For {$i = 0$ \To $m - 1$}
\State $jFirst \gets 2 \cdot i \cdot k$
\State $jLast \gets jFirst + k - 1$
\State $S \gets \psi_{rev}[m + i]$
\For {$j = jFirst$ \To $jLast$}
\State $l \gets j + k$
\State $t \gets \textbf{a}[j]$
\State $u \gets \textbf{a}[l] \cdot S$
\State $\textbf{a}[j] \gets t + u \mod q$
\State $\textbf{a}[l] \gets t - u \mod q$
\EndFor
\EndFor
\State $m \gets m \cdot 2$
\State $k \gets n / 2$
\EndWhile
\State \Return $\textbf{a}$
\EndFunction
\caption{Cooley-Tukey (CT) Forward NTT}
\label{CTAlgo}
\end{algorithm}
\end{document}
答案1
algorithmicx
'salgpseudocode
不提供\Input
或\Output
命令。您必须以相同的方式创建它们(例如)\Ensure
并\Require
生成。
此外,为了对行进行编号,您还需要使用algorithmic
环境:
\documentclass{article}
\usepackage{amsmath}
\usepackage{algorithm,algpseudocode}
\algnewcommand{\To}{\textbf{To }}
\algnewcommand\Input{\item[\textbf{Input:}]}%
\algnewcommand\Output{\item[\textbf{Output:}]}%
\begin{document}
\begin{algorithm}[H]
\begin{algorithmic}[1]
\Input{A vector \textbf{a}}
\Output{Bit reversed vector}
\Function{NTT}{$\textbf{a}$}
\State $m \gets 1$
\State $k \gets n / 2$
\While{$m < n$}
\For {$i = 0$ \To $m - 1$}
\State $jFirst \gets 2 \cdot i \cdot k$
\State $jLast \gets jFirst + k - 1$
\State $S \gets \psi_{rev}[m + i]$
\For {$j = jFirst$ \To $jLast$}
\State $l \gets j + k$
\State $t \gets \textbf{a}[j]$
\State $u \gets \textbf{a}[l] \cdot S$
\State $\textbf{a}[j] \gets t + u \mod q$
\State $\textbf{a}[l] \gets t - u \mod q$
\EndFor
\EndFor
\State $m \gets m \cdot 2$
\State $k \gets n / 2$
\EndWhile
\State \Return $\textbf{a}$
\EndFunction
\end{algorithmic}
\caption{Cooley-Tukey (CT) Forward NTT}
\label{CTAlgo}
\end{algorithm}
\end{document}