Warum erhalte ich in meinem Pseudocode im IEEE Access-Format die Ausdrücke „Require“ und „Ensure“ anstelle der Ausdrücke „input“ und „output“?

Warum erhalte ich in meinem Pseudocode im IEEE Access-Format die Ausdrücke „Require“ und „Ensure“ anstelle der Ausdrücke „input“ und „output“?

Wenn ich den folgenden Pseudocode im \documentclass{article}-Format schreibe, erhalte ich nach der Kompilierung die Ausdrücke "Input" und "Output", aber wenn ich denselben Latex-Code in der IEEE Access-Vorlage schreibe, erhalte ich nach der Kompilierung die Anweisungen "Require" und "Ensure". Ich denke, im ersten Fall konvertiert das Artikelformat die Ausdrücke "Require" und "Ensure" irgendwie in "Input" und "Output", aber im IEEE Access-Format wird diese Konvertierung nicht durchgeführt.

Kann mir bitte jemand erklären, wie ich dieses Problem beheben kann? Ich möchte nach der Kompilierung "Input" und "Output" statt "Require" und "Ensure" sehen.

\documentclass{ieeeaccess}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage[section]{placeins}
\usepackage{algorithm}
 \usepackage{algpseudocode}
 \usepackage{algorithmicx}
 \algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%

\begin{document}
\begin{algorithm}[H]    
    \caption{Algorithm 1}\label{Alg-Decap}
    \begin{algorithmic}[1]
        \Require{$(C,S_k)$}
        \Ensure{ HashSession$(1,\underbar r,C)$ or HashSession$(0,\rho,C))$ }
        \State $c\leftarrow$ Decode$(\underbar c)$  
        \State $c.(3f)\in\mathcal{R}/q$
        \State $e\leftarrow $ (Rounded$(c.(3f))$ mod 3) $\in \mathcal{R}/3$
        \State $e.(1/g)\in\mathcal{R}/3$
        \State $r'\leftarrow$ Lift($e.(1/g)$) $\in\mathcal{R}/q$
        \State $h.r'\in\mathcal{R}/q$
        \State $c'\leftarrow$ Round$(h.r')$
        \State  $\underbar c'\leftarrow$ Encode$(c')$
        \State $C'\leftarrow(\underbar c',$ HashConfirm$(\underbar r',\underbar h))$
        \If{$C'==C$}
        \State \textbf{return} HashSession$(1,\underbar r,C)$
        \Else
        \State \textbf{ return} HashSession$(0,\rho,C))$
        \EndIf
    \end{algorithmic}
\end{algorithm}
\end{document}

Antwort1

Sie können „Anfordern“ mit den folgenden Einstellungen der „Eingabe“ und „Sicherstellen“ der „Ausgabe“ zuordnen:

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

In Ihrem Fall würde der vollständige Code also lauten:

\documentclass{ieeeaccess}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{graphicx}
\usepackage{textcomp}
\usepackage[section]{placeins}
\usepackage{algorithm}
 \usepackage{algpseudocode}
 \usepackage{algorithmicx}
 \algdef{SE}[DOWHILE]{Do}{doWhile}{\algorithmicdo}[1]{\algorithmicwhile\ #1}%

\algrenewcommand\algorithmicrequire{\textbf{Input:}}
\algrenewcommand\algorithmicensure{\textbf{Output:}}

\begin{document}
\begin{algorithm}[H]    
    \caption{Algorithm 1}\label{Alg-Decap}
    \begin{algorithmic}[1]
        \Require{$(C,S_k)$}
        \Ensure{ HashSession$(1,\underbar r,C)$ or HashSession$(0,\rho,C))$ }
        \State $c\leftarrow$ Decode$(\underbar c)$  
        \State $c.(3f)\in\mathcal{R}/q$
        \State $e\leftarrow $ (Rounded$(c.(3f))$ mod 3) $\in \mathcal{R}/3$
        \State $e.(1/g)\in\mathcal{R}/3$
        \State $r'\leftarrow$ Lift($e.(1/g)$) $\in\mathcal{R}/q$
        \State $h.r'\in\mathcal{R}/q$
        \State $c'\leftarrow$ Round$(h.r')$
        \State  $\underbar c'\leftarrow$ Encode$(c')$
        \State $C'\leftarrow(\underbar c',$ HashConfirm$(\underbar r',\underbar h))$
        \If{$C'==C$}
        \State \textbf{return} HashSession$(1,\underbar r,C)$
        \Else
        \State \textbf{ return} HashSession$(0,\rho,C))$
        \EndIf
    \end{algorithmic}
\end{algorithm}
\end{document}

Beispiel für die Änderung von „Require, Ensure“ in „Input, Output“

verwandte Informationen