Latex 插入伪代码

来源:互联网 发布:英文域名注册 编辑:程序博客网 时间:2024/03/29 04:58

在周志华的《机器学习》一书中经常有伪代码
于是今天研究了一下怎么使用Latex写出伪代码
这是《机器学习》第74页的伪代码的Latex代码

\documentclass[11pt,UTF8]{ctexart}\usepackage[top=2cm, bottom=2cm, left=2cm, right=2cm]{geometry}\usepackage{algorithm}\usepackage{algorithmicx}\usepackage{algpseudocode}\usepackage{amsmath}\usepackage{amssymb}%空集符号\floatname{algorithm}{机器学习算法}\renewcommand{\algorithmicrequire}{\textbf{输入:}}\renewcommand{\algorithmicensure}{\textbf{输出:}}\begin{document}\begin{algorithm}\caption{决策树学习基本算法}\begin{algorithmic}[1] %显示行号,1是每行都显示\Require 训练集$D=\left\{(\mathbf{x}_1,y_1),(\mathbf{x}_1,y_1),\dots,(\mathbf{x}_m,y_m)\right\};$属性集$A=\left\{(a_1,a_2,\dots,a_d)\right\}$\Ensure$node$为根节点的一棵决策树\Function {$TreeGenerate$}{$D, A$}\State 生成节点$node$\If {$D$中的样本全属于同一类别$C$}\State$node$标记为$C$类叶节点;\Return\EndIf\If {$A=\varnothing$ $\textbf{OR}$ $D$中样本再$A$上取值相同}\State$node$标记为叶节点,其类别标记为$D$中样本类最多的类;\Return\EndIf\State$A$中选择最优划分属性$a_*$\For {$a_*$的每一个值$a_*^v$}\State$node$生成一个分支;令$D_v$表$D$中$a_*$上取值为$a_*^v$的样本子集;    \If{$D_v$为空}将分支节点标记为叶节点,其类别标记为$D$中样本最多的类;\Return \Else{ 以\Call{$TreeGenerate$}{$D_v, A\backslash\{a_*\}$}为分支节点}\EndIf\EndFor\EndFunction\end{algorithmic}\end{algorithm}\end{document}

输出结果:
这里写图片描述