4

At here Pascal's triangle in tikz we can draw Pascal's triangle. Now I want to note some properties of coefficients C_{n+3}^4 -C_{n+2}^4-C_{n+1}^4+C_{n}^4=n^2 (the first picture) as folowing pictures enter image description here

enter image description here

How can I draw this pictures?

9

I'll left to you understand the code but next is a possible solution based in Paul Gaborit's example

%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Author : Paul Gaborit (2009)
% under Creative Commons attribution license.
% Title : Pascal's triangle and Sierpinski triangle
% Note : 17 lines maximum
\documentclass[border=2mm, tikz]{standalone}
%\usepackage[landscape,margin=1cm]{geometry}
%\pagestyle{empty}
%\usepackage[T1]{fontenc}
%\usepackage{lmodern}

\usepackage{tikz}
\usetikzlibrary{positioning,shadows,backgrounds,shapes.geometric}
\begin{document}
\centering

%
% x=\sqrt{3/4}*minimum size
% y=3/4*minimum size
%
\begin{tikzpicture}[y=7.5mm,x=8.66mm]
  % some colors
  \colorlet{even}{cyan!60!black}
  \colorlet{odd}{orange!100!black}
  \colorlet{links}{red!70!black}
  \colorlet{back}{yellow!20!white}
  % some styles
  \tikzset{
    box/.style={
      regular polygon,
      regular polygon sides=6,
      minimum size=10mm,
      inner sep=0mm,
      outer sep=0mm,
      text centered,
      font=\small\bfseries\sffamily,
      text=#1!50!black,
      draw=#1,
      line width=.25mm,
      rotate=30,
    },
    link/.style={black,  shorten >=2mm, shorten <=2mm, line width=1mm},
  }
  % Pascal's triangle
  % row #0 => value is 1
  \node[box=even] (p-0-0) at (0,0) {\rotatebox{-30}{1}};
  \foreach \row in {1,...,11} {
     % col #0 =&gt; value is 1
    \node[box=even] (p-\row-0) at (-\row/2,-\row) {\rotatebox{-30}{1}};
    \pgfmathsetmacro{\myvalue}{1};
    \foreach \col in {1,...,\row} {
      % iterative formula : val = precval * (row-col+1)/col
      % (+ 0.5 to bypass rounding errors)
      \pgfmathtruncatemacro{\myvalue}{\myvalue*((\row-\col+1)/\col)+0.5};
      \global\let\myvalue=\myvalue
      % position of each value
      \coordinate (pos) at (-\row/2+\col,-\row);
      % odd color for odd value and even color for even value
      \pgfmathtruncatemacro{\rest}{mod(\myvalue,2)}
       \node[box=even] (p-\row-\col) at (pos) {\rotatebox{-30}{\myvalue}};
    }
  }
  \begin{pgfonlayer}{background}
    \foreach \i/\j in {4/1,5/1,5/2,6/2,7/6,8/6,8/7,9/7}
        \node[box=even,fill=odd]  at (p-\i-\j) {};
  \end{pgfonlayer}

    \draw[link] (p-4-1.center)--(p-6-2.center);
    \draw[link] (p-5-1.center)--(p-5-2.center);
    \draw[link] (p-7-6.center)--(p-9-7.center);
    \draw[link] (p-8-6.center)--(p-8-7.center);
    \node[right=5mm of p-8-8.center, align=left]  {$(36-7)+(28-8)=49$};
    \node[left=5mm of p-5-0.center, align=right]  {$(15-4)+(10-5)=16$};

\end{tikzpicture}

\end{document}

enter image description here

(19/11/18) Code updated to avoid problems mentioned in Problem with Pascal triangle example

  • 1
    hi. There may be a problem in this code, an interaction with some other package. If you have trouble compiling it, see my other post : tex.stackexchange.com/questions/460463/… – Nicolas FRANCOIS Nov 17 '18 at 18:14
  • Please consider replacing \value by something less dangerous (OK, this expression sounds stronger than it should sound, this is not meant to sound strong) since \value has a well-defined meaning in many packages/classes, so there could be problems, see e.g. this post. How about \myvalue? – user121799 Nov 17 '18 at 18:17
  • @NicolasFRANCOIS Code updated. – Ignasi Nov 19 '18 at 8:12
11

Not a complete answer, but just intended to show a different way of drawing the triangle and also calculating the values. Requires lualatex:

\documentclass[tikz,border=5]{standalone}
\usetikzlibrary{shapes.geometric}
\directlua{
function factorial (f)
  if f < 2 then  return 1 else  return f*factorial(f-1) end
end

function nchoosek(n, k)
  return factorial(n) / (factorial(n-k) * factorial(k))
end
}
\tikzset{hexagon/.style={
  regular polygon, regular polygon sides=6, shape border rotate=30,
  minimum size=1cm, inner sep=0pt,
  draw, ultra thick, execute at begin node={\setbox0\hbox\bgroup},
  execute at end node={\egroup\pgfmathparse{min(4ex,\wd0)/\wd0}%
    \scalebox{\pgfmathresult}{\box0}}
}}
\begin{document}
\tikz[x=1cm*sin 60, y=1.5cm*cos 60]
\foreach \n in {0,...,11}
  \foreach \k in {0,...,\n}    
    \node [hexagon] at (-\n/2+\k, -\n) {\directlua{tex.print("" .. nchoosek(\n,\k))}};
\end{document}

enter image description here

The advantage with using lualatex is that it is possible to bypass the limits on mathematical calculations in PGF (actually in TeX):

enter image description here

  • This won't compile at my place as of today. The fix is explained here : add \RequirePackage{luatex85} as the very first line, a temporary workaround until standalone is updated. – marsupilam Oct 25 '16 at 16:29
  • Hi @mark-wibrow, I would like to use your code with a little change: I would like to be able to change the background color of some hexagons, inserting some conditional code. I don't know where to insert it, though. A simple line like "\ifthenelse{\n=2}{fill=blue!30,}{}" won't work. How could I do? – zar Nov 2 '16 at 17:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.