cp's OEIS Frontend

This is a front-end for the Online Encyclopedia of Integer Sequences, made by Christian Perfect. The idea is to provide OEIS entries in non-ancient HTML, and then to think about how they're presented visually. The source code is on GitHub.

A178446 Number of perfect matchings in the n X n X n triangular grid, reduced by the spire vertex if n mod 4 equals 1 or 2.

Original entry on oeis.org

1, 1, 1, 2, 6, 28, 200, 2196, 37004, 957304, 38016960, 2317631400, 216893681800, 31159166587056, 6871649018572800, 2326335506123418128, 1208982377794384163088, 964503557426086478029152, 1181201363574177619007442944, 2220650888749669503773432361504, 6408743336016148761893699822360672
Offset: 0

Views

Author

Alois P. Heinz, Dec 24 2010

Keywords

Comments

The n X n X n triangular grid has n rows with i vertices in row i. Each vertex is connected to the neighbors in the same row and up to two vertices in each of the neighboring rows. The graph has A000217(n) vertices and 3*A000217(n-1) edges altogether.
In order to be able to find matchings the n X n X n triangular grid is reduced by the spire vertex (one vertex in row 1) and the incident edges if n mod 4 is in {1, 2}. The resulting graph has an even number of vertices.

Examples

			4 example graphs:                         o
                                         / \
                             o          o---o
                            / \        / \ / \
                   ( )     o---o      o---o---o
                          / \ / \    / \ / \ / \
              ( ) o---o  o---o---o  o---o---o---o
  n:           1    2        3            4
  Vertices:    0    2        6           10
  Edges:       0    1        9           18
  Matchings:   1    1        2            6
		

Crossrefs

Programs

  • Maple
    with(LinearAlgebra):
    a:= proc(n) option remember; local i, j, h0, h1, M, s, t;
          if n<2 then 1
        else s:= `if`(member(irem(n, 4), [1, 2]), 1, 0);
             M:= Matrix((n+1)*n/2 -s, shape=skewsymmetric);
             if s=1 then M[1,2]:=1 fi;
             for j from 1+s to n-1 do
               h0:= j*(j-1)/2 +1-s;
               h1:= h0+j;
               t:= 1;
               for i from 1 to j do
                 M[h1, h1+1]:= 1;
                 M[h1, h0]:= t;
                 h1:= h1+1;
                 M[h1, h0]:= t;
                 h0:= h0+1;
                 t:= -t
               od
             od;
             sqrt(Determinant(M))
          fi
        end:
    seq(a(n), n=0..15);
  • Mathematica
    a[n_] := a[n] = Module[{i, j, h0, h1, M, s, t}, If[n<2, 1, s = If[1 <= Mod[n, 4] <= 2, 1, 0]; M = Array[0&, {(n+1)n/2 - s, (n+1)n/2 - s}]; If[s == 1, M[[1, 2]] = 1]; For[j = 1+s, j <= n-1, j++, h0 = j(j-1)/2 + 1 - s; h1 = h0+j; t = 1; For[i = 1, i <= j, i++, M[[h1, h1+1]] = 1; M[[h1, h0]] = t; h1 = h1+1; M[[h1, h0]] = t; h0 = h0+1; t = -t]]; Sqrt[Det[M-Transpose[M]]]]];
    Table[a[n], {n, 0, 15}] (* Jean-François Alcover, Sep 23 2022, after Alois P. Heinz *)