二项式系数的帕斯卡三角形从1
第 1 行开始,然后是1 1
第 2 行、1 2 1
第 3 行,依此类推。
这个问题的答案
展示如何在 tikz 中写出解决方案。
以下是我喜欢的改编版本:
\begin{tikzpicture}[rotate=-90]
\foreach \x in {0,1,...,3}
{
\foreach \y in {0,...,\x}
{
\pgfmathsetmacro\binom{factorial(\x)/(factorial(\y)*factorial(\x-\y))}
\pgfmathsetmacro\shift{\x/2}
\node[xshift=-\shift cm] at (\x,\y) {\pgfmathprintnumber\binom};
}
}
\end{tikzpicture}
我如何写出一个变体,它0
在第一行、1
第二行、1 1
第三行,然后继续像通常的帕斯卡三角形那样?
答案1
您只需添加
\node at (-1,0) {0};
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[rotate=-90]
\node at (-1,0) {0};
\foreach \x in {0,1,...,3}
{
\foreach \y in {0,...,\x}
{
\pgfmathsetmacro\binom{factorial(\x)/(factorial(\y)*factorial(\x-\y))}
\pgfmathsetmacro\shift{\x/2}
\node[xshift=-\shift cm] at (\x,\y) {\pgfmathprintnumber\binom};
}
}
\end{tikzpicture}
\end{document}
答案2
这只是@Torbjorn 答案的一个小替代方案(他教我的一个技巧这里) 以避免使用(在我看来很烦人\pgfmathsetmacro
),在循环中直接包含要评估的变量。
更多详细信息请参阅 pfg 手册 v3.1.5.b p1003,第 89 节重复事物:Foreach 语句。
\documentclass[border=5mm]{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[rotate=-90]
\node at (-1,0) {0};
\foreach \x in {0,1,...,3}
{
\foreach [evaluate ={
\binom = factorial(\x)/(factorial(\y)*factorial(\x-\y));
\shift = \x/2 ;
}] \y in {0,...,\x}
{\node[xshift=-\shift cm] at (\x,\y) {\pgfmathprintnumber\binom};}
}
\end{tikzpicture}
\end{document}