ff[n_,s_]:=
​
In[]:=
ResourceFunction["StringOverlaps"]
Out[]=
In[]:=
ResourceFunction["StringOverlapsQ"]
Out[]=
In[]:=
StringTuples["AB",5]
Out[]=
{AAAAA,AAAAB,AAABA,AAABB,AABAA,AABAB,AABBA,AABBB,ABAAA,ABAAB,ABABA,ABABB,ABBAA,ABBAB,ABBBA,ABBBB,BAAAA,BAAAB,BAABA,BAABB,BABAA,BABAB,BABBA,BABBB,BBAAA,BBAAB,BBABA,BBABB,BBBAA,BBBAB,BBBBA,BBBBB}
In[]:=
Tuples[%,3]
Out[]=
In[]:=
Length[%215]
Out[]=
32768
In[]:=
frac[n_,s_]:=frac[n,s]=With[{u=Union[Sort/@Tuples[StringTuples["AB",n],s]]},Length[Select[u,(!ResourceFunction["StringOverlapsQ"][#])&]]/Length[u]]
In[]:=
Table[frac[n,s],{n,1,5},{s,1,5}]
Out[]=
1,
1
3
,0,0,0,
1
2
,
1
10
,0,0,0,
1
2
,
1
6
,
1
30
,
1
330
,0,
3
8
,
15
136
,
5
204
,
5
1292
,
1
2584
,
3
8
,
1
8
,
5
136
,
9
952
,
1
476

In[]:=
N[%]
Out[]=
{{1.,0.333333,0.,0.},{0.5,0.1,0.,0.},{0.5,0.166667,0.0333333,0.0030303},{0.375,0.110294,0.0245098,0.00386997}}
In[]:=
Grid[Prepend[Append[Table[Prepend[Table[N[frac[n,s],3],{s,4}],n],{n,5}],Flatten[{Infinity,N[#,3]&/@{0.267786840217889112376671403584,xx,xx,xx}}]],Style[Text[#],FontSize.85Inherited]&/@{"n","s = 1","s = 2","s = 3","s = 4"}],FrameAll,FrameStyle->GrayLevel[.7],Background{None,{GrayLevel[.94],White}},BaseStyle"Text"]
Out[]=
n
s = 1
s = 2
s = 3
s = 4
1
1.00
0.333
0
0
2
0.500
0.100
0
0
3
0.500
0.167
0.0333
0.00303
4
0.375
0.110
0.0245
0.00387
5
0.375
0.125
0.0368
0.00945
∞
0.268
xx
xx
xx
In[]:=
Tuples[StringTuples["AB",2],2]
Out[]=
{{AA,AA},{AA,AB},{AA,BA},{AA,BB},{AB,AA},{AB,AB},{AB,BA},{AB,BB},{BA,AA},{BA,AB},{BA,BA},{BA,BB},{BB,AA},{BB,AB},{BB,BA},{BB,BB}}
In[]:=
Union[Sort/@Tuples[StringTuples["AB",2],2]]
Out[]=
{{AA,AA},{AA,AB},{AA,BA},{AA,BB},{AB,AB},{AB,BA},{AB,BB},{BA,BA},{BA,BB},{BB,BB}}