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,,0,0,0,,,0,0,0,,,,,0,,,,,,,,,,
1
3
1
2
1
10
1
2
1
6
1
30
1
330
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"}],FrameAll,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}}