A364237 a(n) is the number of non-equivalent permutations of {1,2,...,2n-1} such that no subset of consecutive terms from the permutation sums to 0 modulo 2n, where two permutations are equivalent if one can be obtained from the other by multiplying every entry with an integer relatively prime to 2n and/or reversing the permutation.
1, 1, 2, 4, 42, 504, 7492, 172480, 8639632
Offset: 1
Examples
When n=3, there are four permutations of {1,2,3,4,5} such that no subset of consecutive terms from the permutation sums to 0 modulo 6, namely 14325, 25314, 41352, and 52341. Note that 14325 and 52341 are equivalent by reversing the permutations. Furthermore multiplication by 5 on every entry also yields the same equivalence. Additionally, 25314 and 41352 are analogously equivalent. Hence a(3)=2. When n=4, 6142573 and 3752416 are equivalent by reversing the permutations but not by multiplying any integer relatively prime to 8, whereas 6142573 and 2346751 are equivalent by multiplication of 3 on every entry.
Links
- Sunil K. Chebolu and Papa A. Sissokho, Zero-sum-free tuples and hyperplane arrangements, Integers 22 (2022), #A13.
- Sean A. Irvine, Java program (github)
Crossrefs
Cf. A141599.
Programs
-
SageMath
n = 3 #the index for the sequence a(n) orbits = {} #dictionary of permutations that are consecutive zero-sum-free seen = [] #list of seen permutations that are consecutive zero-sum-free a = 0 #the value of a(n) for labeling in Permutations(range(1,2*n)): if labeling not in seen: sums = [labeling[0]] for i in range(1,2*n-1): nextsum = (labeling[i] + sums[i-1]) % (2*n) if any([nextsum == 0, nextsum in sums]): break sums.append(nextsum) if len(sums) == (2*n)-1: a += 1 orbits[a] = [] for m in [x for x in range(1,2*n) if gcd(x,2*n) == 1]: equiv = [(m*labeling[i]) % (2*n) for i in range(2*n-1)] if equiv not in orbits[a]: orbits[a].append(equiv) seen.append(equiv) equiv = [equiv[2*n-2-i] for i in range(2*n-1)] if equiv not in orbits[a]: orbits[a].append(equiv) seen.append(equiv) print(f"a({n}) = {a}\n") print("Equivalencies:") for i in range(1,a+1): print(f"{i}.") for x in orbits[i]: print(x) print('\n')
Extensions
a(8)-a(9) from Sean A. Irvine, Aug 15 2023
Comments