Tools

在Latex文档中插入算法模块

2018-10-07  本文已影响0人  习惯了千姿百态

1.前言

作为一名计算机专业的学生,在写学术论文的时候,不可避免的需要在论文中书写相关的算法。如果自己一点点调格式,可能会比较麻烦,而且显得非常不专业。在Latex中用相关的算法包,可以格式化我们的算法模块。

2.几种常用的格式

方式1

\documentclass[utf-8]{ctexart}
\usepackage{ctex}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{multirow}
\usepackage{amsmath} 
\begin{document}
    \begin{algorithm}[htb] 
    \caption{ 写算法名称} 
    \label{alg:Framwork} 
    \begin{algorithmic}[1] %这个1 表示从第一行开始显示行号,不写就不会显示行号
    \REQUIRE ~~\\ %算法的输入参数:Input
    输入1 \\
    输入2 \\
    \ENSURE ~~\\ %算法的输出:Output
    \STATE 输入1
    \STATE 输入2
    \RETURN 返回值; %算法的返回值
    \end{algorithmic}
    \end{algorithm}
\end{document}
方式1效果
方式2
\documentclass[utf-8]{ctexart}
\usepackage{ctex}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{multirow}
\usepackage{amsmath} 
\begin{document}
\begin{algorithm}[h]
    \caption{常用的循环写法}
    \begin{algorithmic}[1]
    \STATE $//$ for each
    \FOR{each $i \in [1,9]$}
    \STATE initialize a tree $T_{i}$ with only a leaf (the root);\
    \STATE $T=T \cup T_{i};$\
    \ENDFOR

    \STATE $//$ for all
    \FORALL {$c$ such that $c \in RecentMBatch(E_{n-1})$} 
    \label{code:TrainBase:getc}
    \STATE $T=T \cup PosSample(c)$; 
    \label{code:TrainBase:pos}
    \ENDFOR

    \STATE $//$传统for循环
    \FOR{$i=1$; $i<n$; $i++$ }
    \STATE $//$ Your source here;
    \ENDFOR

    \STATE $//$ while循环
    \WHILE {$(|E_n| \leq L_1 )and( D \neq \phi)$}
    \STATE Selecting the most recent classifier $c_i$ from $D$;
    \STATE $D=D-c_i$;
    \STATE $E_n=E_n+c_i$;
    \ENDWHILE 

    \end{algorithmic}
    \end{algorithm}
    
\end{document}
方式2效果

方式3

\documentclass[utf-8]{ctexart}
\usepackage{ctex}
\usepackage{algorithm}
\usepackage{algorithmic}
\usepackage{multirow}
\usepackage{amsmath} 
\begin{document}
\begin{algorithm}[h]
    \caption{if-else语句的书写}
    \begin{algorithmic}[1]
    \FOR {$i=1;i<10;i++$}
        \IF {$i\%3==0 $}
            \STATE cout<<i<<endl;
        \ELSIF{$i\%3==1$}
            \STATE cout<<i+1<<endl;
        \ELSIF{$i\%3==2$}
            \STATE cout<<i+2<<endl;
        \ELSE 
            \STATE cout<<"error"<<endl;
        \ENDIF
    \ENDFOR

    \end{algorithmic}
    \end{algorithm}
\end{document}
方式3效果
上一篇 下一篇

猜你喜欢

热点阅读