關於各種宏包
如果要用 \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