пытался разобраться с применениями тождества тройного произведения Якоби — вот можно посмотреть, как оно выглядит:
from sage.all import *
N = 10
q, Z = var('q'), var('Z')
J = prod((1-q**(2*m))*(1+q**(2*m-1)*Z**2)*(1+q**(2*m-1)*Z**(-2))
for m in range(1, N+1))
print(J.series(q,2*N+1))
его можно применять к товарищам типа θ(q):=Σq^{n^2} — а степени такой суммы считают представления чисел в виде суммы квадратов и т.д.
но это пока с трудом идет
что давно знаю — что из тройного произведения следует пентагональная теорема Эйлера, позволяющая быстро вычислять количества разбиений (способов представить число N в виде суммы слагаемых, порядок которых не важен)
// ранее про разбиения: https://t.me/compmathweekly/40
про этот сюжет можно прочитать в брошюре «Диаграммы Юнга, плоские разбиения и знакочередующиеся матрицы» Е.Смирнова, https://mccme.ru/free-books/dubna/smirnov-asm.pdf
для разминки написал соответствующее вычисление:
penta = concat [[(p,s), (p+m,s)] | m <- [1..],
let (p,s) = (m*(3*m-1) `div` 2, (-1)^(m+1))]
partn = 1 : [sum [s*(partn !! (n-p)) | (p,s) <- pents] | n <- [1..],
let pents = takeWhile ((<= n) . fst) penta]
(и действительно,
partn !! 500, скажем, мгновенно отвечает 2300165032574323995027)