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.

A356264 Partition triangle read by rows, counting reducible permutations, refining triangle A356265.

This page as a plain text file.
%I A356264 #11 Aug 23 2022 05:34:56
%S A356264 0,0,1,0,1,2,0,1,5,3,2,0,1,9,12,15,10,2,0,1,14,23,12,47,94,11,31,24,2,
%T A356264 0,1,20,38,48,113,293,154,137,183,409,78,63,54,2,0,1,27,60,87,49,227,
%U A356264 738,883,451,457,670,2157,1007,1580,79,605,1520,384,127,116,2,0
%N A356264 Partition triangle read by rows, counting reducible permutations, refining triangle A356265.
%H A356264 Peter Luschny, <a href="https://github.com/PeterLuschny/PermutationsWithLehmer/blob/main/PermutationsWithLehmer.ipynb">Permutations with Lehmer</a>, a SageMath Jupyter Notebook.
%e A356264 [0] 0;
%e A356264 [1] 0;
%e A356264 [2] 1, 0;
%e A356264 [3] 1, 2, 0;
%e A356264 [4] 1, [5, 3], 2, 0;
%e A356264 [5] 1, [9, 12], [15,  10],   2,  0;
%e A356264 [6] 1, [14, 23, 12], [ 47,  94, 11], [31,   24],   2,  0;
%e A356264 [7] 1, [20, 38, 48], [113, 293, 154, 137], [183, 409, 78], [63, 54], 2, 0;
%e A356264 Summing the bracketed terms reduces the triangle to A356265.
%o A356264 (SageMath)
%o A356264 import collections
%o A356264 def reducible(p) -> bool:  # p is a Sage-Permutation
%o A356264     return any(i for i in range(1, p.size())
%o A356264                   if all(p(j) < p(k)
%o A356264                       for j in range(1, i + 1)
%o A356264                           for k in range(i + 1, p.size() + 1) ) )
%o A356264 def void(L) -> bool: return True
%o A356264 def perm_red_stats(n: int, part_costraint, lehmer_constraint):
%o A356264     res = collections.defaultdict(int)
%o A356264     for p in Permutations(n):
%o A356264         if not part_costraint(p): continue
%o A356264         l: list[int] = p.to_lehmer_code()
%o A356264         if lehmer_constraint(l):
%o A356264             c: list[int] = [l.count(i) for i in range(len(p)) if i in l]
%o A356264             res[Partition(reversed(sorted(c)))] += 1
%o A356264     return sorted(res.items(), key=lambda x: len(x[0]))
%o A356264 @cache
%o A356264 def A356264_row(n: int) -> list[int]:
%o A356264     if n < 2: return [0]
%o A356264     return [v[1] for v in perm_red_stats(n, reducible, void)] + [0]
%o A356264 def A356264(n: int, k: int) -> int:
%o A356264     return A356264_row(n)[k]
%o A356264 for n in range(0, 8): print(A356264_row(n))
%Y A356264 Cf. A356265 (reduced), A356262, A356263, A356291 (row sums).
%K A356264 nonn,tabf
%O A356264 0,6
%A A356264 _Peter Luschny_, Aug 05 2022