我想用 LaTeX 编写以下算法:
V <- AllUnigramsInTraining(D)
N <- NumberOfTweets(D)
**for** each c ∈ C do
Nc <- Number of tweets in Class c
prior(c) <- [...]
Tweetsc <- All Tweets in class c
**for** each term t ∈ V do
Tct <- No. of times term t appeared in Tweetsc
**end for**
**for** each term t ∈ V do
prob[t][c] <- [...]
**end for**
**end for**
我写了下面的代码,但编译不正确。有人能帮忙吗?
\begin{algorithmic}
\STATE $V\gets AllUnigramsInTraining(D)$ \\
\STATE $N\gets NumberOfTweets(D)$ \\
\FOR each $c \in C$ \DO \\
\STATE $N_c\gets Number of tweets in Class c$ \\
\begin{equation}
prior(c) = \frac{N_c}{N} \\
\end{equation}
\STATE $Tweets_c\gets = All Tweets in class c$ \\
\FOR each term $t \in V$ \DO \\
T_ct = No. of times term t appeared in Tweets_c \\
\END
\FOR each term $t \in V$ \DO \\
\begin{equation}
$prob[t][c] = \frac{T_ct}{\sum_^t'{T_ct'+ 1}} \\
\end{equation}
\END
\END
\end{algorithmic}
答案1
有非常那里错了。首先,你不需要\\
在行末。你的$
等式内部有一个(不平衡的)内联数学。你的下标不在数学模式中。你的和符号有问题。我不知道你到底想要什么,但这至少应该给你输出,不管它是否正是你想要的……我不知道。
\documentclass{article}
\usepackage{algorithmic}
\begin{document}
\begin{algorithmic}
\STATE $V\gets$ AllUnigramsInTraining($D$)
\STATE $N\gets$ NumberOfTweets($D$)
\FORALL{$c \in C$}
\STATE $N_c \gets$ Number of tweets in Class $c$
\STATE \begin{equation}prior(c) = \frac{N_c}{N}\end{equation}
\STATE $Tweets_c \gets $All Tweets in class $c$
\FORALL{$t \in V$}
\STATE $T_ct$ = No. of times term $t$ appeared in $Tweets_c$
\ENDFOR
\FORALL{$t \in V$}
\STATE \begin{equation}prob[t][c] = \frac{T_ct}{\sum^{t'}T_ct'+ 1}\end{equation}
\ENDFOR
\ENDFOR
\end{algorithmic}
\end{document}
答案2
您的for
陈述缺少括号,并且您的方程块应该是\state
线。
有一些很好的例子LaTeX 维基百科