login
Number of n-node graphs that have 2 non-isomorphic components.
10

%I #20 Jul 04 2024 02:23:00

%S 0,1,1,3,8,29,140,998,12139,273400,11991356,1018707920,165078860603,

%T 50500999728875,29053989521339474,31426435300576595334,

%U 64000986599534312444935,245935832697890955733422940,1787577661113111145804012075034,24637809007125076355873926288686728

%N Number of n-node graphs that have 2 non-isomorphic components.

%C "Component" means there are no edges from a node of one component to any node of the other component.

%C Each of the 2 components may be the empty graph with 0 nodes. That means the graph has only one "visible" component in these cases.

%C Each of the 2 components must be a connected graph (see A001349). (The empty graph has all properties and is a connected graph.)

%C The graphs of the 2 components must not be the same (not be isomorphic).

%H Alois P. Heinz, <a href="/A275166/b275166.txt">Table of n, a(n) for n = 0..75</a>

%F G.f.: [A(x)^2 - A(x^2)]/2 where A(x) is the o.g.f. for A001349.

%F a(n) = A275165(n) if n odd.

%e a(4)=8 = 1*6 + 1*2 where 1*6=A001349(0)*A001349(4) counts graphs with an empty component and a component with 4 nodes, where 1*2 = A001349(1)*A001349(3) counts graphs with a component of 1 node and a component of 3 nodes. There is no contribution from a component of 2 nodes and another component of 2 nodes (both components were isomorphic in that case).

%t terms = 20;

%t mob[m_, n_] := If[Mod[m, n] == 0, MoebiusMu[m/n], 0];

%t EULERi[b_] := Module[{a, c, i, d}, c = {}; For[i = 1, i <= Length[b], i++, c = Append[c, i*b[[i]] - Sum[c[[d]]*b[[i - d]], {d, 1, i - 1}]]]; a = {}; For[i = 1, i <= Length[b], i++, a = Append[a, (1/i)*Sum[mob[i, d]*c[[d]], {d, 1, i}]]]; Return[a]];

%t permcount[v_] := Module[{m = 1, s = 0, k = 0, t}, For[i = 1, i <= Length[v], i++, t = v[[i]]; k = If[i > 1 && t == v[[i - 1]], k + 1, 1]; m *= t*k; s += t]; s!/m];

%t edges[v_] := Sum[GCD[v[[i]], v[[j]]], {i, 2, Length[v]}, {j, 1, i - 1}] + Total[Quotient[v, 2]];

%t a88[n_] := Module[{s = 0}, Do[s += permcount[p]*2^edges[p], {p, IntegerPartitions[n]}]; s/n!];

%t A[x_] = Join[{1}, EULERi[Array[a88, terms]]].x^Range[0, terms];

%t (A[x]^2 - A[x^2])/2 + O[x]^terms // CoefficientList[#, x]& (* _Jean-François Alcover_, Jan 31 2020, after _Andrew Howroyd_ in A001349 *)

%o (Python)

%o from functools import lru_cache

%o from itertools import combinations

%o from fractions import Fraction

%o from math import prod, gcd, factorial, comb

%o from sympy import mobius, divisors

%o from sympy.utilities.iterables import partitions

%o def A275166(n):

%o @lru_cache(maxsize=None)

%o def b(n): return int(sum(Fraction(1<<sum(p[r]*p[s]*gcd(r,s) for r,s in combinations(p.keys(),2))+sum((q>>1)*r+(q*r*(r-1)>>1) for q, r in p.items()),prod(q**r*factorial(r) for q, r in p.items())) for p in partitions(n)))

%o @lru_cache(maxsize=None)

%o def c(n): return n*b(n)-sum(c(k)*b(n-k) for k in range(1,n))

%o @lru_cache(maxsize=None)

%o def d(n): return sum(mobius(n//d)*c(d) for d in divisors(n,generator=True))//n if n else 1

%o return sum(d(i)*d(n-i) for i in range(n+1>>1)) + (0 if n&1 else comb(d(n>>1),2)) # _Chai Wah Wu_, Jul 03 2024

%Y Cf. A216785, A001349, A275165.

%K nonn

%O 0,4

%A _R. J. Mathar_, Jul 18 2016