login

Year-end appeal: Please make a donation to the OEIS Foundation to support ongoing development and maintenance of the OEIS. We are now in our 61st year, we have over 378,000 sequences, and we’ve reached 11,000 citations (which often say “discovered thanks to the OEIS”).

A001329
Number of nonisomorphic groupoids with n elements.
(Formerly M4760 N2035)
58
1, 1, 10, 3330, 178981952, 2483527537094825, 14325590003318891522275680, 50976900301814584087291487087214170039, 155682086691137947272042502251643461917498835481022016
OFFSET
0,3
COMMENTS
The number of isomorphism classes of closed binary operations on a set of order n.
The term "magma" is also used as an alternative for "groupoid" since the latter has a different meaning in e.g. category theory. - Joel Brennan, Jan 20 2022
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
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.
Marko Riedel, Counting non-isomorphic binary relations, Mathematics Stack Exchange question.
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)
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
a(n) = A079173(n) + A027851(n) = A079177(n) + A079180(n).
a(n) = A079183(n) + A001425(n) = A079187(n) + A079190(n).
a(n) = A079193(n) + A079196(n) + A079199(n) + A001426(n).
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 *)
PROG
(Sage)
R.<a> = 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
KEYWORD
nonn,nice
EXTENSIONS
More terms from Christian G. Bower, May 08 1998
STATUS
approved