如何解决算法中多输出行的问题

如何解决算法中多输出行的问题

algorithm当我使用和编写伪代码时algorithmic

输出语句溢出一行,如下所示。

\begin{algorithm}[!h]
\textbf{Input:} The set of public $parameters$\\
\textbf{Output:} Public key $pk = ({Seed}_{a}\parallel\mathbf{b})$, Private Key $sk = (\mathbf{s})$
\begin{algorithmic}[1]
    \STATE ${Seed}_{a} \xleftarrow{\$} {\{0, 1\}}^{256}$
    \STATE $\mathbf{a} \gets$ \texttt{SHAKE}256$({Seed}_{a}, n/8)$
    \STATE $\mathbf{s} \xleftarrow{\$} {HWT}_{n}({h}_{s})$
    \STATE $\mathbf{e} \xleftarrow{\$} {\psi}_{cb}^{n}$
    \STATE $\mathbf{b} \gets -\mathbf{a} \ast \mathbf{s} + \mathbf{e}$
    \STATE $pk \gets {Seed}_{a} \parallel \mathbf{b}$
    \STATE $sk \gets \mathbf{s}$
    \RETURN $pk, sk$
\end{algorithmic}
\caption{IND-CPA.KeyGen}
\label{Alg:IND-CPA.KeyGen}
\end{algorithm}

在此处输入图片描述

如何使此语句成为一行?

答案1

好吧,你没有给我们一个可编译的 TeX 代码(这意味着\documentclass代码以 开始并以 结束\end{document}),所以我不得不猜测一下。我希望我猜对了。下次请添加一个可编译的 MWE,这样我们就不必猜测你在做什么了……

\begin{algorithmic}您可以使用这两个命令来代替之前使用的文本,\REQUIRE例如\ENSURE

\REQUIRE The set of public $parameters$
\ENSURE  Public key $pk=({Seed}_{a}\parallel\mathbf{b})$, Private Key $sk=(\mathbf{s})$

要获得您想要的打印文本“输入”和“输出”,请在序言中使用命令

\renewcommand{\algorithmicrequire}{\textbf{Input:}} % <=================
\renewcommand{\algorithmicensure}{\textbf{Output:}} % <=================

然后您将获得一行打印的“输出”信息。

请参阅以下完整且可编译的 MWE

\documentclass{article}

\usepackage{algorithm}
\usepackage{algorithmic}

\renewcommand{\algorithmicrequire}{\textbf{Input:}} % <=================
\renewcommand{\algorithmicensure}{\textbf{Output:}} % <=================

\usepackage{amsmath}


\begin{document}
\begin{algorithm}[!h]
\begin{algorithmic}[1]
\REQUIRE The set of public $parameters$
\ENSURE  Public key $pk=({Seed}_{a}\parallel\mathbf{b})$, Private Key $sk=(\mathbf{s})$
    \STATE ${Seed}_{a} \xleftarrow{\$} {\{0, 1\}}^{256}$
    \STATE $\mathbf{a} \gets$ \texttt{SHAKE}256$({Seed}_{a}, n/8)$
    \STATE $\mathbf{s} \xleftarrow{\$} {HWT}_{n}({h}_{s})$
    \STATE $\mathbf{e} \xleftarrow{\$} {\psi}_{cb}^{n}$
    \STATE $\mathbf{b} \gets -\mathbf{a} \ast \mathbf{s} + \mathbf{e}$
    \STATE $pk \gets {Seed}_{a} \parallel \mathbf{b}$
    \STATE $sk \gets \mathbf{s}$
    \RETURN $pk, sk$
\end{algorithmic}
\caption{IND-CPA.KeyGen}
\label{Alg:IND-CPA.KeyGen}
\end{algorithm}
\end{document}

及其结果:

产生的算法

相关内容