OFFSET
0,3
COMMENTS
The definition of an orbital system is given in A232500 (see also the illustration there). The number of orbitals over n sectors is counted by the swinging factorial A056040.
When a segment of an orbital starts at a point on the central circle this point is called a 'return' of the orbital if it is not the origin.
If an orbital touches the central circle only in the origin it is called a prime orbital. Column 0 counts the prime orbitals over n sectors.
A108747 is a subtriangle.
LINKS
Peter Luschny, Orbitals
FORMULA
For even n>0: T(n,k) = 2^(k+1)*(k+1)*binomial(n-k-1,n/2)/(n-k-1) for k=0..n/2-1 (from A108747).
EXAMPLE
Triangle read by rows, n>=0. The length of row n is floor((n+1)/2) for n>=1.
[ n] [k=0,1,2,...] [row sum]
[ 0] [1] 1
[ 1] [1] 1
[ 2] [2] 2
[ 3] [2, 4] 6
[ 4] [2, 4] 6
[ 5] [6, 12, 12] 30
[ 6] [4, 8, 8] 20
[ 7] [20, 40, 48, 32] 140
[ 8] [10, 20, 24, 16] 70
[ 9] [70, 140, 180, 160, 80] 630
[10] [28, 56, 72, 64, 32] 252
[11] [252, 504, 672, 672, 480, 192] 2772
T(6,0) = 4 because the following 4 orbitals stay above or below the central
circle: [-1, -1, -1, 1, 1, 1], [-1, -1, 1, -1, 1, 1], [1, 1, -1, 1, -1, -1],
[1, 1, 1, -1, -1, -1].
PROG
(Sage) # uses[unit_orbitals from A274709]
from itertools import accumulate
# Brute force counting
def orbital_returns(n):
if n == 0: return [1]
S = [0]*((n+1)//2)
for u in unit_orbitals(n):
L = list(accumulate(u))
Z = len(list(filter(lambda z: z == 0, L)))
S[Z-1] += 1 # exclude origin
return S
for n in (0..10): print(orbital_returns(n))
CROSSREFS
KEYWORD
nonn,tabf
AUTHOR
Peter Luschny, Jul 11 2016
STATUS
approved