可能重复:
tikz 中的帕斯卡三角形
我尝试在表格中制作这个,它有点奏效。但我无法插入任何箭头。有没有简单的方法可以在 LaTeX 中制作下面的图像?
即,在 LaTeX 中制作一个帕斯卡三角形,用箭头表示下一行是如何制作的
答案1
你可以让 Tikz 确定数字并绘制帕斯卡三角形(给定深度),如下所示:
\documentclass{article}
\usepackage{tikz}
\def\mkPascal#1{
\begin{tikzpicture}
\def\dx{20pt}
\def\dy{30pt}
\newcounter{i}
\stepcounter{i}
\node (\arabic{i}) at (0,0) {1};
\foreach [count=\i] \x in {2,...,#1}{
\pgfmathsetmacro{\lox}{\x-1}%
\pgfmathsetmacro{\loxt}{\x-3}%
\foreach [count=\j] \xx in {-\lox,-\loxt,...,\lox}{
\pgfmathsetmacro{\jj}{\j-1}%
\stepcounter{i}
\pgfmathsetmacro{\lbl}{\lox!/(\jj!*(\lox-\jj)!)}
\node (\arabic{i}) at (\xx*\dx, -\lox*\dy) {\pgfmathint{\lbl}\pgfmathresult};
}
}
\newcounter{z}
\newcounter{xn}
\newcounter{xnn}
\pgfmathsetmacro{\maxx}{#1 - 1}
\foreach \x in {1,...,\maxx}{
\foreach \xx in {1,...,\x}{
\stepcounter{z}
\setcounter{xn}{\arabic{z}}
\addtocounter{xn}{\x}
\setcounter{xnn}{\arabic{xn}}
\stepcounter{xnn}
\draw [->] (\arabic{z}) -- (\arabic{xn});
\draw [->] (\arabic{z}) -- (\arabic{xnn});
}
}
\end{tikzpicture}
}
\begin{document}
\mkPascal{8}
\end{document}
首先,在三角形配置中绘制节点并确定其标签。其次,我们再次循环遍历节点以绘制箭头,每个子节点一个。最终结果如下:
不幸的是,由于使用能力来计算节点标签,您无法绘制超过8
层的 Pascal 三角形。这可能可以通过使用递归定义来增加,而n choose k
不是使用这个。
答案2
你有一个美好的帕斯卡三角形和谢尔宾斯基三角形在TeXample.net
答案3
正如@Andrew所说,最好的方法是使用tikz。一个粗略的替代方法是在表格环境中将箭头和数字放在交替的行中。
\documentclass{article}
\begin{document}
\newcommand{\ap}{\ensuremath{\swarrow\,\searrow}}
\setlength{\tabcolsep}{0pt}
\begin{tabular}{ccccccccc}
& & & & 1 & & & & \\
& & & & \ap & & & & \\
& & & 1 & & 1 & & & \\
& & & \ap & & \ap & & & \\
& & 1 & & 2 & & 1 & & \\
& & \ap & & \ap & & \ap & & \\
& 1 & & 3 & & 3 & & 1 & \\
&\ap & & \ap & & \ap & & \ap & \\
1 & & 4 & & 6 & & 4 & & 1
\end{tabular}
\end{document}