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.

A340425 Square array T(n,k), n >= 1, k >= 1, read by antidiagonals, where T(n,k) is the number of spanning trees of odd Aztec rectangle of order (n, k).

Original entry on oeis.org

1, 4, 4, 16, 192, 16, 64, 8960, 8960, 64, 256, 417792, 4542720, 417792, 256, 1024, 19480576, 2280570880, 2280570880, 19480576, 1024, 4096, 908328960, 1143668117504, 12116689944576, 1143668117504, 908328960, 4096
Offset: 1

Views

Author

Seiichi Manyama, Jan 07 2021

Keywords

Examples

			Square array begins:
    1,        4,            16,                64,                    256, ...
    4,      192,          8960,            417792,               19480576, ...
   16,     8960,       4542720,        2280570880,          1143668117504, ...
   64,   417792,    2280570880,    12116689944576,      64046643170770944, ...
  256, 19480576, 1143668117504, 64046643170770944, 3544863978266468352000, ...
		

References

  • Mihai Ciucu, Matchings and applications. Department of Mathematics, Indiana University, Bloomington, IN 47405. See Lecture 12.

Crossrefs

Main diagonal gives A340352.
Cf. A340427.

Programs

  • PARI
    default(realprecision, 120);
    {T(n,k) = round(4^(2*n*k-n-k)*prod(a=1, n-1, prod(b=1, k-1, 1-(sin(a*Pi/(2*n))*sin(b*Pi/(2*k)))^2)))}
    
  • Python
    # Using graphillion
    from graphillion import GraphSet
    def make_OD_nk(n, k):
        n += 1
        k += 1
        grids = []
        s = k * n
        for i in range(1, k * n, k):
            for j in range(1, k):
                a, b = i + j - 1, i + j
                c = s + a
                if i > 1:
                    grids.extend([(c - k, a), (c - k, b)])
                if i < k * (n - 1) + 1:
                    grids.extend([(c, a), (c, b)])
        return grids
    def A340425(n, k):
        universe = make_OD_nk(n, k)
        GraphSet.set_universe(universe)
        spanning_trees = GraphSet.trees(is_spanning=True)
        return spanning_trees.len()
    print([A340425(j + 1, i - j + 1) for i in range(7) for j in range(i + 1)])

Formula

T(n,k) = T(k,n).
T(n,k) = 4^(2*n*k-n-k) * Product_{a=1..n-1} Product_{b=1..k-1} (1 - sin(a*Pi/(2*n))^2 * sin(b*Pi/(2*k))^2).
T(n,k) = 4^(2*n*k-n-k) * Product_{a=1..n-1} Product_{b=1..k-1} (1 - cos(a*Pi/(2*n))^2 * cos(b*Pi/(2*k))^2).
T(n,k) = 4^(2*n*k-n-k) * Product_{a=1..n-1} Product_{b=1..k-1} (1 - sin(a*Pi/(2*n))^2 * cos(b*Pi/(2*k))^2).