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.

Previous Showing 11-12 of 12 results.

A275332 Triangle read by rows: the major index statistic of the oscillating orbitals, also the q-analog of the oscillating orbitals A232500.

Original entry on oeis.org

0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 1, 2, 2, 2, 1, 1, 0, 1, 1, 1, 2, 2, 1, 1, 1, 0, 1, 2, 3, 5, 7, 8, 9, 9, 8, 7, 5, 3, 2, 1, 0, 1, 1, 2, 2, 4, 4, 5, 4, 5, 4, 4, 2, 2, 1, 1, 0, 1, 2, 4, 6, 10, 14, 19, 23, 28, 31, 34, 34, 34, 31, 28, 23, 19, 14, 10, 6, 4, 2, 1
Offset: 0

Views

Author

Peter Luschny, Jul 26 2016

Keywords

Comments

The q-osc_orbitals are univariate polynomials over the integers with degree floor((n+1)/2)^2 - n mod 2. Evaluated at q=1 they give the oscillating orbitals A232500(n) for n>=2.
Combinatorial interpretation: The definition of an orbital system is given in A232500 and in the link 'Orbitals'. The major index of an orbital is the sum of the positions of steps which are immediately followed by a step with strictly smaller value. The major index of the oscillating orbitals is the restriction of the major index of all orbitals (see A274888) to this subclass.

Examples

			Some polynomials:
[4] (q^2 + 1)*q
[5] (q^4 + q^3 + q^2 + q + 1)*(q^2 + 1)*q
[6] (q^4 + q^3 + q^2 + q + 1)*(q^2 - q + 1)*(q + 1)*q
[7] (q^6 + q^5 + q^4 + q^3 + q^2 + q + 1)*(q^4 + q^3 + q^2 + q + 1)*(q^2 - q + 1)*(q + 1)*q
[8] (q^6 + q^5 + q^4 + q^3 + q^2 + q + 1)*(q^4 + 1)*(q^2 + q + 1)*(q^2 - q + 1)*q
[9] (q^6 + q^5 + q^4 + q^3 + q^2 + q + 1)*(q^6 + q^3 + 1)*(q^4 + 1)*(q^2 + q + 1)^2*(q^2 - q + 1)*q
The triangle starts:
[n] [k=0,1,2,...] [row sum]
[0] [0] 0
[1] [0] 0
[2] [0] 0
[3] [0] 0
[4] [0, 1, 0, 1] 2
[5] [0, 1, 1, 2, 2, 2, 1, 1] 10
[6] [0, 1, 1, 1, 2, 2, 1, 1, 1] 10
[7] [0, 1, 2, 3, 5, 7, 8, 9, 9, 8, 7, 5, 3, 2, 1] 70
[8] [0, 1, 1, 2, 2, 4, 4, 5, 4, 5, 4, 4, 2, 2, 1, 1] 42
T(5,3) = 2 because A = [-1, 1, 1, -1, 0] and B = [1, 0, -1, -1, 1] are oscillating orbitals; A has downsteps at position 3 and B has downsteps at positions 1 and 2.
		

Crossrefs

Cf. A056040 (row sums), A274887 (q-factorial), A274888 (q-swinging factorial),
A274884 (alternate description of oscillating orbitals).

Programs

  • Sage
    from sage.combinat.q_analogues import q_factorial
    def osc_orbitals_coeffs(n):
        q = var('q')
        if n < 4: return [0]
        a = lambda n,q: sum(q^j for j in (0..n))
        b = lambda n,q: sum(q^(2*j) for j in (0..n))
        A = lambda n,q: q*a(n-2,q)/a(n,q)
        B = lambda n,q: q*b(n-1,q)/b(n,q)
        Q = A(n//2,q) if n%4 == 0 or n%4 == 1 else B(n//4,q)
        qSwing = lambda n,q: q_factorial(n,q)/q_factorial(n//2,q)^2
        return ((Q*qSwing(n,q)).factor()).list()
    for n in (0..10): print([n], osc_orbitals_coeffs(n))
    
  • Sage
    # uses[unit_orbitals from A274709]
    # Brute force counting
    def osc_orbitals_major_index(n):
        if n<4: return [0]
        S = [0]*(((n+1)//2)^2 - (n % 2))
        for u in unit_orbitals(n):
            if all(x >= 0 for x in accumulate(u)): continue
            if all(x <= 0 for x in accumulate(u)): continue
            L = [i+1 if u[i+1] < u[i] else 0 for i in (0..n-2)]
            #    i+1 because u is 0-based whereas convention assumes 1-base
            S[sum(L)] += 1
        return S
    for n in (0..10):  print(osc_orbitals_major_index(n))

Formula

Let A(n,q) = q*alpha(n-2,q)/alpha(n,q) with alpha(n,q) = Sum_{j=0..n} q^j and B(n,q) = q*beta(n-1,q)/beta(n,q) with beta(n,q) = Sum_{j=0..n} q^(2*j). Then QOscOrbitals(n,q) = qSwing(n,q)*C(n,q) with C(n,q) = A(floor(n/2),q) if n mod 4 in {0, 1} else C(n,q) = B(floor(n/4),q).

A275333 Triangle read by rows, the break statistic on orbital systems over n sectors.

Original entry on oeis.org

1, 1, 1, 1, 2, 2, 2, 1, 1, 2, 1, 1, 3, 3, 6, 6, 6, 3, 3, 1, 1, 2, 3, 3, 3, 3, 2, 1, 1, 4, 4, 8, 12, 16, 16, 20, 16, 16, 12, 8, 4, 4, 1, 1, 2, 3, 5, 5, 7, 7, 8, 7, 7, 5, 5, 3, 2, 1, 1, 5, 5, 10, 15, 25, 30, 40, 45, 55, 55, 60, 55, 55, 45, 40, 30, 25, 15, 10, 5, 5
Offset: 0

Views

Author

Peter Luschny, Jul 23 2016

Keywords

Comments

The definition of an orbital system is given in A232500. The number of orbitals over n sectors is counted by the swinging factorial A056040.
The break index of an orbital is the sum of the positions of the up steps that are immediately followed by a step which is not an up step. This statistic is an extension of the major index statistic given in A063746 which appears as the even numbered rows here. This reflects the fact that the swinging factorial can be seen as an extension of the central binomial. The break index is different from the major index of the swinging factorial (which is in A274888).

Examples

			The length of row n is floor(n^2/4 + 1). Triangle starts:
[n] [k=0,1,2,...] [row sum]
[0] [1] 1
[1] [1] 1
[2] [1, 1] 2
[3] [2, 2, 2] 6
[4] [1, 1, 2, 1, 1] 6
[5] [3, 3, 6, 6, 6, 3, 3] 30
[6] [1, 1, 2, 3, 3, 3, 3, 2, 1, 1] 20
[7] [4, 4, 8, 12, 16, 16, 20, 16, 16, 12, 8, 4, 4] 140
[8] [1, 1, 2, 3, 5, 5, 7, 7, 8, 7, 7, 5, 5, 3, 2, 1, 1] 70
[9] [5, 5, 10, 15, 25, 30, 40, 45, 55, 55, 60, 55, 55, 45, 40, 30,25,15,10,5,5] 630
T(5, 5) = 3 because the three orbitals [1, -1, -1, 1, 0], [1, -1, 0, 1, -1] and [1, 0, -1, 1, -1] have at position 1 and position 4 an up-step which is immediately followed by a step which is not an up-step.
		

Crossrefs

Cf. A056040 (row sum), A063746 (sub triangle), A274888 (q-swinging factorial).
Other orbital statistics: A241477 (first zero crossing), A274706 (absolute integral), A274708 (peaks), A274709 (max. height), A274710 (number of turns), A274878 (span), A274879 (returns), A274880 (restarts), A274881 (ascent).

Programs

  • Sage
    # uses[unit_orbitals from A274709]
    # Brute force counting
    def orbital_break_index(n):
        S = [0]*(n^2//4 + 1)
        for u in unit_orbitals(n):
            L = [i+1 if u[i] == 1 and u[i+1] != 1 else 0 for i in (0..n-2)]
            #    i+1 because u is 0-based
            S[sum(L)] += 1
        return S
    for n in (0..9): print(orbital_break_index(n))
Previous Showing 11-12 of 12 results.