login
Table T(n,k) read by upward antidiagonals. T(n,k) is the maximum value of Product_{i=1..n} Sum_{j=1..k} r[(i-1)*k+j] among all permutations r of {1..kn}.
2

%I #20 Mar 31 2020 10:40:40

%S 1,2,3,6,25,6,24,343,110,10,120,6561,3375,324,15,720,161051,144400,

%T 17576,756,21,5040,4826809,7962624,1336336,64000,1521,28,40320,

%U 170859375,535387328,130691232,7595536,185193,2756,36,3628800,6975757441

%N Table T(n,k) read by upward antidiagonals. T(n,k) is the maximum value of Product_{i=1..n} Sum_{j=1..k} r[(i-1)*k+j] among all permutations r of {1..kn}.

%C A dual sequence to A331889.

%C k 1 2 3 4 5 6 7 8 9

%C --------------------------------------------------------------------------------------

%C n 1| 1 3 6 10 15 21 28 36 45

%C 2| 2 25 110 324 756 1521 2756 4624 7310

%C 3| 6 343 3375 17576 64000 185193 456533 1000000 2000376

%C 4| 24 6561 144400 1336336 7595536 31640625 106131204

%C 5| 120 161051 7962624 130691232

%C 6| 720 4826809 535387328

%C 7| 5040 170859375

%C 8| 40320 6975757441

%C 9| 3628800

%C 10| 39916800

%H Chai Wah Wu, <a href="https://arxiv.org/abs/2002.10514">On rearrangement inequalities for multiple sequences</a>, arXiv:2002.10514 [math.CO], 2020.

%F T(n,k) <= floor((k*(k*n+1)/2)^n) with equality if k = 2*t+n*u for nonnegative integers t and u.

%F T(n,1) = n! = A000142(n).

%F T(1,k) = k*(k+1)/2 = A000217(k).

%F T(n,2) = (2*n+1)^n = A085527(n).

%F If n is even, k is odd and k >= n-1, then T(n,k) = ((k^2*(k*n+1)^2-1)/4)^(n/2).

%o (Python)

%o from itertools import combinations, permutations

%o from sympy import factorial

%o def T(n,k): # T(n,k) for A333420

%o if k == 1:

%o return int(factorial(n))

%o if n == 1:

%o return k*(k+1)//2

%o if k % 2 == 0 or (k >= n-1 and n % 2 == 1):

%o return (k*(k*n+1)//2)**n

%o if k >= n-1 and n % 2 == 0 and k % 2 == 1:

%o return ((k**2*(k*n+1)**2-1)//4)**(n//2)

%o nk = n*k

%o nktuple = tuple(range(1,nk+1))

%o nkset = set(nktuple)

%o count = 0

%o for firsttuple in combinations(nktuple,n):

%o nexttupleset = nkset-set(firsttuple)

%o for s in permutations(sorted(nexttupleset),nk-2*n):

%o llist = sorted(nexttupleset-set(s),reverse=True)

%o t = list(firsttuple)

%o for i in range(0,k-2):

%o itn = i*n

%o for j in range(n):

%o t[j] += s[itn+j]

%o t.sort()

%o w = 1

%o for i in range(n):

%o w *= llist[i]+t[i]

%o if w > count:

%o count = w

%o return count

%Y Cf. A000142, A000217, A085527, A331889.

%K nonn,more,tabl

%O 1,2

%A _Chai Wah Wu_, Mar 23 2020