A001329 Number of nonisomorphic groupoids with n elements.
1, 1, 10, 3330, 178981952, 2483527537094825, 14325590003318891522275680, 50976900301814584087291487087214170039, 155682086691137947272042502251643461917498835481022016
Offset: 0
References
- N. J. A. Sloane, A Handbook of Integer Sequences, Academic Press, 1973 (includes this sequence).
- N. J. A. Sloane and Simon Plouffe, The Encyclopedia of Integer Sequences, Academic Press, 1995 (includes this sequence).
Links
- Philip Tureček, Table of n, a(n) for n = 0..27
- J. Berman and S. Burris, A computer study of 3-element groupoids Lect. Notes Pure Appl. Math. 180 (1994) 379-429 MR1404949
- M. A. Harrison, The number of isomorphism types of finite algebras, Proc. Amer. Math. Soc., 17 (1966), 731-737.
- Eric Postpischil, Posting to sci.math newsgroup, May 21 1990
- Marko Riedel, Counting non-isomorphic binary relations, Mathematics Stack Exchange question.
- N. J. A. Sloane, Overview of A001329, A001423-A001428, A258719, A258720.
- T. Tamura, Some contributions of computation to semigroups and groupoids, pp. 229-261 of J. Leech, editor, Computational Problems in Abstract Algebra. Pergamon, Oxford, 1970. (Annotated and scanned copy)
- Philip Turecek, Maple program
- Philip Tureček, Counting Finite Magmas, arXiv:2305.00269 [math.CO], 2023.
- Eric Weisstein's World of Mathematics, Groupoid
- Wikipedia, Magma (algebra)
- Index entries for sequences related to groupoids
Crossrefs
Programs
-
Maple
with(numtheory); with(group): with(combinat): pet_cycleind_symm := proc(n) local p, s; option remember; if n=0 then return 1; fi; expand(1/n*add(a[l]*pet_cycleind_symm(n-l), l=1..n)); end; pet_flatten_term := proc(varp) local terml, d, cf, v; terml := []; cf := varp; for v in indets(varp) do d := degree(varp, v); terml := [op(terml), seq(v, k=1..d)]; cf := cf/v^d; od; [cf, terml]; end; bs_binop := proc(n) option remember; local dsjc, flat, p, q, len, cyc, cyc1, cyc2, l1, l2, res; if n=0 then return 1; fi; if n=1 then return 1; fi; res := 0; for dsjc in pet_cycleind_symm(n) do flat := pet_flatten_term(dsjc); p := 1; for cyc1 in flat[2] do l1 := op(1, cyc1); for cyc2 in flat[2] do l2 := op(1, cyc2); len := lcm(l1,l2); q := 0; for cyc in flat[2] do if len mod op(1, cyc) = 0 then q := q + op(1, cyc); fi; od; p := p * q^(l1*l2/len); od; od; res := res + p*flat[1]; od; res; end;
-
Mathematica
magmas[n_] := ( rul1 = {{a[i_],j_},{a[k_],l_}} :> sum[i,k]^(j*l*GCD[i,k]*(2-Boole[i==k])); rul2 = {a[r_],s_} :> If[Mod[lcm,r]==0,r*s,0]; trans[mo_] := ( listc = FactorList@mo; list = listc[[2;;]]; sum[i_,k_] := ( lcm = LCM[i,k]; Plus@@(list/.rul2) ); pairs = Select[Tuples[list,2],OrderedQ]; listc[[1,1]]^listc[[1,2]]*Times@@(pairs/.rul1) ); trans/@CycleIndexPolynomial[SymmetricGroup@n,Array[a,n]] ); (* Philip Turecek, May 25 2022 *)
-
Sage
R. = InfinitePolynomialRing(QQ) @cached_function def Z(n): if n==0: return R.one() return sum(a[k]*Z(n-k) for k in (1..n))/n def magmas(n): P = Z(n) q = 0 c = P.coefficients() count = 0 for m in P.monomials(): r = 1 T = m.variables() S = list(T) for u in T: i = R.varname_key(str(u))[1] j = m.degree(u) D = 0 for d in divisors(i): D += d*m.degrees()[-d-1] r *= D^(i*j^2) S.remove(u) for v in S: k = R.varname_key(str(v))[1] l = m.degree(v) D = 0 for d in divisors(lcm(i,k)): try: D += d*m.degrees()[-d-1] except: break r *= D^(gcd(i,k)*j*l*2) q += c[count]*r count += 1 return q # Philip Turecek, Nov 20 2022
Formula
a(n) = Sum_{1*s_1+2*s_2+...=n} (fixA[s_1, s_2, ...]/(1^s_1*s_1!*2^s_2*s2!*...)) where fixA[s_1, s_2, ...] = Product_{i, j>=1} ( (Sum_{d|lcm(i, j)} (d*s_d))^(gcd(i, j)*s_i*s_j)). - Christian G. Bower, May 08 1998, Dec 03 2003
a(n) is asymptotic to n^(n^2)/n! = A002489(n)/A000142(n) ~ (e*n^(n-1))^n / sqrt(2*Pi*n). - Christian G. Bower, Dec 03 2003
Extensions
More terms from Christian G. Bower, May 08 1998
Comments