您的位置:首页 > 编程语言 > Go语言

Latex 算法Algorithm

2016-03-29 09:55 746 查看

在计算机科学当中,论文当中经常需要排版算法。相信大家在读论文中也看见了很多排版精美的算法。本文就通过示例来简要介绍一下 algorithms 束的用法。该束主要提供了两个宏包,包含两种进行算法排版的环境,algorithm 和 algorithmic 。

这两个宏包是被设计成同时一起使用的,但也可以根据用户的特殊需要分开使用。其中 algorithm 宏包主要是为算法提供一个浮动体环境,也就是说,在 LaTeX 中算法和图像,表一样,都是浮动体。algorithmic 宏包主要是用来完成算法的描述功能,该宏包提供了我们描述算法常用的几种结构命令,如条件结构、循环结构等。下面我们就通过示例来对 algorithm 的使用进行讲解。

Algorithmic  环境

Algorithmic 宏包,为描述算法提供了程序设计中的所有常用结构的表示,如:判断 (IF) ,循环  (WHILE, FOR, LOOP), 输入(REQUIRE) ,输出(ENSURE)等。在这里需要注意的是,所有 algorithmic 提供的命令都是全大写。下面,我们通过一个简单程序的算法,来将所有的算法描述都用上。通过求从1到n的整数和的算法实例来说明 algorithmic 语法。

TeX
1234567891011121314\begin{algorithmic}\REQUIRE $n \geq 1$                  %输入条件\ENSURE $Sum = 1 + \cdots + n$       %输出\STATE $Sum \leftarrow 0$            %\STATE 命名演示\IF {$n < 1$}                        %条件语句\PRINT {Input Errow}                 %打印语句\ELSE    \FOR {$i = 0$ to n}          %FOR循环结构    \STATE $Sum = Sum + i$\\    \STATE $i = i + 1$    \ENDFOR\ENDIF\RETURN Sum\end{algorithmic}

以上就是一个算法的示例了其生成文档效果如图所示

这里用的 REQUIRE 命令和 ENSURE 命令和我们日常用的有不同,我们还可以使用重定义命令,将输出变味我们常见的 Input 和 Output 形式,下面是命令:

TeX
1 2 \renewcommand{\algorithmicrequire}{\textbf{Input:}} \renewcommand{\algorithmicensure}{\textbf{Output:}}

 Algorithm 环境

Algorithm 环境主要作用是将代码段变成浮动体,浮动体一方面能防止代码超出页面范围,另外一方面也方面最后生成和图表目录相似的算法列表目录。也能通过标记,方便在文章其它地方引用。还是以上面的例子为例

TeX
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 \begin{algorithm} \caption{计算从1到n的和}              %标题 \label{alg1}                        %标记算法,方便在其它地方引用 \begin{algorithmic} \REQUIRE$n \geq 1$                  %输入条件 \ENSURE$Sum = 1 + \cdots + n$      %输出 \STATE$Sum \leftarrow 0$            %\STATE 命名演示 \IF{$n < 1$}                        %条件语句 \PRINT{InputErrow}                %打印语句 \ELSE     \FOR{$i = 0$ton}          %FOR循环结构     \STATE$Sum = Sum + i$\\     \STATE$i = i + 1$     \ENDFOR \ENDIF \RETURNSum \end{algorithmic} \end{algorithm}

该断代码生成文档如下图


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: