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.

User: Philip Turecek

Philip Turecek's wiki page.

Philip Turecek has authored 2 sequences.

A361720 Number of nonisomorphic right involutory Płonka magmas with n elements.

Original entry on oeis.org

1, 1, 2, 4, 12, 37, 164, 849, 6081, 56164, 698921
Offset: 0

Author

Philip Turecek, Apr 14 2023

Keywords

Comments

Alexandrul Chirvasitu and Gigel Militaru introduced the notion of a right Płonka magma as a magma X that satisfies (xy)z = (xz)y and x(yz) = xy for all x,y,z in X. It is called involutory, if it satisfies the additional property (xy)y = x for all x,y in X.
A right Płonka magma (X,*) is associative if and only if there exists an idempotent self-map f = f^2: X -> X such that x*y = f(x) for all x,y in X (the rows of the corresponding Cayley table must necessarily be constant). Thus the total number of associative right Płonka magmas on a given set of n elements is A000248 with A000041 as the corresponding number of isomorphism classes.

References

  • J. Płonka, "On k-cyclic groupoids", Math. Japon. 30 (3), 371-382 (1985).

Crossrefs

A362821 is the labeled version.

Programs

  • Sage
    def right_involutory_plonka(n):
        G = Integers(n)
        Perm = SymmetricGroup(list(G))
        M = [sigma for sigma in Perm if sigma == ~sigma]
        def is_compatible(r):
            return all([ r[i]*r[j] == r[j]*r[i] and r[r[i](j)] == r[j] for i in range(len(r)) for j in range(len(r)) if ZZ(r[i](j)) < len(r) ])
        def possible_extensions(r):
            R = []
            for m in M:
                r_new = r+[m]
                if is_compatible(r_new):
                    R += [r_new]
            return R
        def extend(R):
            R_new = []
            for r in R:
                R_new += possible_extensions(r)
            return R_new
        i = 0
        R = [[]]
        while i < n:
            R = extend(R)
            i += 1
        act = lambda sigma,r: [(~sigma)*r[(~sigma)(i)]*sigma for i in range(len(r))]    # In Sage, the composition of permutations is reversed.
        orbits = []
        while R:
            r = R.pop()
            orb = []
            for sigma in Perm:
                orb += [tuple(act(sigma,r))]
                try: R.remove(act(sigma,r))
                except: pass
            orbits += [set(orb)]
        return len(orbits)
    
  • Sage
    def right_involutory_plonka(n):
        N = range(n)
        Perm = SymmetricGroup(N)
        M = [sigma for sigma in Perm if sigma == ~sigma]
        def is_compatible(r,r_new):
            length = len(r)
            inds = range(length)
            for i in inds:
                if not r[i]*r_new == r_new*r[i]:
                    return [false]
            for i in inds:
                rni = r_new(i)
                if i < rni < length:
                    if not r[rni] == r[i]:
                        return [false]
                if rni == length:
                    if not r_new == r[i]:
                        return [false]
            for i in inds:
                for j in inds:
                    if r[i](j) == length:
                        if not r_new == r[j]:
                            return [false]
            return true, r+[r_new]
        def possible_extensions(r):
            R = []
            for m in M:
                r_potential = is_compatible(r,m)
                if r_potential[0]:
                    R += [r_potential[1]]
            return R
        def extend(R):
            R_new = []
            for r in R:
                R_new += possible_extensions(r)
            return R_new
        R = [[]]
        for i in N:
            R = extend(R)
        act = lambda sigma,r: [(~sigma)*r[(~sigma)(i)]*sigma for i in range(n)]    # In Sage, the composition of permutations is reversed.
        orbits = []
        while R:
            r = R.pop()
            orb = []
            for sigma in Perm:
                r_iso = act(sigma,r)
                orb += [tuple(r_iso)]
                try: R.remove(r_iso)
                except: pass
            orbits += [set(orb)]
        return len(orbits)

Extensions

a(8)-a(10) from Andrew Howroyd, Apr 17 2023

A362421 Number of nonisomorphic vector spaces consisting of n elements.

Original entry on oeis.org

1, 1, 2, 1, 0, 1, 2, 2, 0, 1, 0, 1, 0, 0, 3, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 2, 0, 1, 0, 1, 2, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 0, 2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 1, 0, 0, 4, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 3, 0, 1, 0, 0, 0, 0, 0
Offset: 2

Author

Philip Turecek, Apr 19 2023

Keywords

Comments

If n is a prime power p^k, then a vector space consisting of n elements has the form (F_(p^d))^(k/d) where d is a divisor of k.

Examples

			a(16) = 3 because 16=2^4 and 4 has 3 divisors.
		

Programs

  • Sage
    def f(a):
        if not a.is_prime_power(): return 0
        else: return sigma(factor(a)[0][1],0)

Formula

a(n) = a(p^k) = sigma_0(k) if n = p^k is a prime power, a(n) = 0 otherwise.