关于各种宏包
如果要用 \geq 大于/小于号,
需要添加宏包
\usepackage{amsmath} \usepackage{amssymb}
伪代码
伪代码有多种包可用,但是不能混用
比如使用algorithm2e,需要先导入
\usepackage[linesnumbered,boxed,ruled,commentsnumbered]{algorithm2e}
方括号中的 ruled 是让标题显示在上面,否则算法的标题则在下面。 linesnumbered 让算法中显示行号。 boxed, 让算法排版时好像插入在一个盒子里。
举个例子
\IncMargin{1em} % 使得行号不向外突出
\begin{algorithm}
\SetAlgoNoLine % 不要算法中的竖线
随机初始化$Q(s)$和$\pi(s)$ ;\\
\Repeat
{\text{策略保持不变$\pi '(s)=\pi(s),\forall s$}}
{对于当前策略 $\pi$,使用迭代式策略评价的算法估计 $v_{\pi}(s)$ 得到$Q(s)$ \\
使用贪婪策略提升得到$\pi '(s)$ }
% {}
\caption{策略迭代算法 (利用迭代式策略评价)\label{al4}}
\end{algorithm}
\DecMargin{1em}
显示效果:
贴一个别人的例子
\begin{algorithm}[t]
\SetAlgoNoLine % 不要算法中的竖线
\caption{每次访问蒙特卡罗更新}
\label{algo:event}
\LinesNumbered
\KwIn{FFT Bins $B_{1}, B_{2}, B_{3}, ..., B_{n}$}
\KwOut{Event start point $S$, end point $E$}
\For{i=1:n}{
\eIf{max($B_{i}$) : max($B_{(i+4)}$)$>$-80}{
$S$=i; \tcp*{Start Point}
\For{j=S:n}{
\eIf{max($B_{j}$) : max($B_{(j+4)}$)$<$-100}{
$E$=j; \tcp*{End Point}
Return [$S,E$];
}{j++;}
}
}{
i++;}
}
\end{algorithm}
书写代码时也有一些专门的命令:
\; 在行末添加分号,并自动换行
\caption{} 插入标题
\KwData {输入信息} 排版为 Data:输入信息
\Kwln {输入信息} 排版为 In: 输入信息
\KwOut {输出信息} 排版为: Out: 输出信息
\KwResult {输出信息} 排版为: Result: 输出信息
\For {条件循环语句} 排版为 for 条件do 循环语句endo
\If {条件肯定语句} 排版为 if 条件then 肯定语句end
\While {条件循环语句} 排版为 while 条件do 循环语句end
使用 \renewcommand{\algorithmcfname}{算法} 命令修改算法显示。
该工具包的使用手册下载地址:
http://mlg.ulb.ac.be/files/algorithm2e.pdf