如何写帕斯卡三角形模 2

如何写帕斯卡三角形模 2

我正在写一篇文档,很想写出帕斯卡三角模 2。即每个二项式系数模 2,除以 2 后的“余数”。我找到了这些链接(帕斯卡) 的普通三角形代码,并尝试手动编写每个节点,但我没能做到。我想要一个像这样的三角形:

1
11101 1111 10001 ...



如果能得到一些帮助我将非常感激,非常感谢。

答案1

实际上,你可以从本网站找到任何帕斯卡三角形的例子,并应用到mod(2)数字上,例如,取这种方法我们可以得到:

\documentclass[tikz,border=5]{standalone}
\usepgflibrary{fpu}
\begin{document}
\def\N{10}
\tikz[x=0.75cm,y=0.5cm, 
  pascal node/.style={font=\footnotesize}, 
  row node/.style={font=\footnotesize, anchor=west, shift=(180:1)}]
  \path  
    \foreach \n in {0,...,\N} { 
      (-\N/2-1, -\n) node[row node/.try]{Row \n:}
        \foreach \k in {0,...,\n}{
          (-\n/2+\k,-\n) node[pascal node/.try] {%
            \pgfkeys{/pgf/fpu}%
            \pgfmathparse{mod(round(\n!/(\k!*(\n-\k)!)),2)}%
            \pgfmathfloattoint{\pgfmathresult}%
            \pgfmathresult%
          }}};
\end{document}

在此处输入图片描述

最后一行的单个负零可能是舍入误差的结果。我留给你来修复它... =)

答案2

你也许可以简化一下逻辑,但是

在此处输入图片描述

\documentclass{article}

\def\zz#1#2{%
\ifx\empty#2\else
\ifodd\numexpr#1+#2\relax1\else0\fi
\expandafter\zz\expandafter#2%
\fi}

\def\ptriangle#1#2{%
\ifnum#1=0
\def\lastline{1}%
\else
\edef\lastline{\expandafter\zz\expandafter0\lastline0\empty}%
\fi
\lastline\par
\ifnum#1=#2
\expandafter\zzstop
\fi
\ptriangle{\numexpr#1+1\relax}{#2}%
}
\def\zzstop#1#2#3{}
\begin{document}

\ptriangle{0}{5}

\end{document}

相关内容