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.

A360440 Square array read by antidiagonals upwards: T(n,k), n>=0, k>=0, is the number of ways of choosing nonnegative numbers for k indistinguishable A063008(n)-sided dice so that it is possible to roll every number from 0 to (A063008(n))^k-1.

This page as a plain text file.
%I A360440 #19 Mar 25 2025 08:57:20
%S A360440 1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,7,15,1,1,1,1,10,71,105,1,1,1,1,42,
%T A360440 280,1001,945,1,1,1,1,115,3660,15400,18089,10395,1,1,1,1,35,20365,
%U A360440 614040,1401400,398959,135135,1,1
%N A360440 Square array read by antidiagonals upwards: T(n,k), n>=0, k>=0, is the number of ways of choosing nonnegative numbers for k indistinguishable A063008(n)-sided dice so that it is possible to roll every number from 0 to (A063008(n))^k-1.
%C A360440 The number of configurations depends on the number of sides on the dice only through its prime signature. A063008 provides a canonical representative of each prime signature.
%C A360440 Also the number of Krasner factorizations of (x^(A063008(n))^k)-1) / (x-1) into k polynomials each having A063008(n) nonzero terms all with coefficient +1. (Krasner and Ranulac, 1937)
%H A360440 M. Krasner and B. Ranulac, <a href="https://gallica.bnf.fr/ark:/12148/bpt6k31562/f397.item">Sur une propriété des polynomes de la division du cercle</a>, Comptes Rendus Académie des Sciences Paris, 240:397-399, 1937.
%H A360440 Matthew C. Lettington and Karl Michael Schmidt, <a href="https://arxiv.org/abs/1910.02455">Divisor Functions and the Number of Sum Systems</a>, arXiv:1910.02455 [math.NT], 2019.
%F A360440 T(n,k) = f(A063008(n),k), where f(n,k) is the table given by A360098.
%e A360440 A063008(2) = 4. There are 3 ways to assign numbers to two 4-sided dice:
%e A360440  {{0, 1, 2, 3}, {0, 4, 8, 12}},
%e A360440  {{0, 1, 8, 9}, {0, 2, 4,  6}},
%e A360440  {{0, 1, 4, 5}, {0, 2, 8, 10}}.
%e A360440 The table begins:
%e A360440   1  1    1       1          1              1                 1  ...
%e A360440   1  1    1       1          1              1                 1  ...
%e A360440   1  1    3      15        105            945             10395  ...
%e A360440   1  1    7      71       1001          18089            398959  ...
%e A360440   1  1   10     280      15400        1401400         190590400  ...
%e A360440   1  1   42    3660     614040      169200360       69444920160  ...
%e A360440   1  1  115   20365    6891361     3815893741     3141782433931  ...
%e A360440   1  1   35    5775    2627625     2546168625     4509264634875  ...
%e A360440   1  1  230  160440  299145000  1175153779800  8396156461492800  ...
%e A360440   ...
%e A360440 The rows shown enumerate configurations for dice of 1, 2, 4, 6, 8, 12, 30, 16, and 24 sides, which represent the prime signatures {}, {1}, {2}, {1,1}, {3}, {2,1}, {1,1,1}, {4}, and {3,1}.
%o A360440 (SageMath)
%o A360440 @cached_function
%o A360440 def r(i,M):
%o A360440     kminus1 = len(M)
%o A360440     u = tuple([1 for j in range(kminus1)])
%o A360440     if i > 1 and M == u:
%o A360440         return(1)
%o A360440     elif M != u:
%o A360440         divList = divisors(i)[:-1]
%o A360440         return(sum(r(M[j],tuple(sorted(M[:j]+tuple([d])+M[j+1:])))\
%o A360440          for d in divList for j in range(kminus1)))
%o A360440 def f(n,k):
%o A360440     if n == 1 or k == 0:
%o A360440         return(1)
%o A360440     else:
%o A360440         return(r(n,tuple([n for j in range(k-1)]))) / factorial(k-1)
%o A360440 # The following function produces the top left corner of the table:
%o A360440 def TArray(maxn,maxk):
%o A360440     retArray = []
%o A360440     primesList = []
%o A360440     ptnSum = 0
%o A360440     ptnItr = Partitions(ptnSum)
%o A360440     ptn = ptnItr.first()
%o A360440     n = 0
%o A360440     while n <= maxn:
%o A360440         if ptn == None:
%o A360440             primesList.append(Primes()[ptnSum])
%o A360440             ptnSum = ptnSum + 1
%o A360440             ptnItr = Partitions(ptnSum)
%o A360440             ptn = ptnItr.first()
%o A360440         prdct = prod(primesList[j]^ptn[j] for j in range(len(ptn)))
%o A360440         retArray.append([f(prdct,k) for k in range(maxk+1)])
%o A360440         n = n + 1
%o A360440         ptn = ptnItr.next(ptn)
%o A360440     return(retArray)
%Y A360440 The concatenation of all prime signatures, listed in the order that corresponds to the rows of T(n,k), is A080577.
%Y A360440 T(3,k) is |A002119(k)|. Starting with k = 1, T(1,k), T(2,k), T(4,k), and T(7,k) are given by columns 1-4 of A060540.
%Y A360440 Row n is row A063008(n) of A360098.
%Y A360440 Cf. A273013, A131514.
%K A360440 nonn,tabl
%O A360440 0,13
%A A360440 _William P. Orrick_, Feb 19 2023