文字列の数を数えたい 有限のアルファベット以上 、それは繰り返しを含まず、それによって私は任意の部分文字列を意味します の 、 、のばらばらのコピーはありません に 。例として、。その後 ある部分文字列のため以来、私はカウントしたい文字列のいずれか、ばらばらのコピーはありません。しかしながら、 そのような繰り返しが含まれています。
誰かがすでに有用な式を見つけている場合は、リンクしてください。それ以外の場合は、誰かの回答を使用する場合、私が書く記事でこの投稿を参照します。
別の例を示します。長い文字列を作成してみましょう、繰り返しを含まない:
aaa(aにすることはできません)
aaab(aまたはb)
aaabbb(bに することはできません)
aaabbba(bまたはaにする
ことはできません)aaaba(aまたはbにすることはできません)
ツリーを構築した場合、ノードの数を数えることができますが、式が必要です。
編集: まあ、私たちがこれをビンを選択する問題に変換するかどうか最初に考えたほど難しくはありません。少なくとも1回の繰り返しを持つ長さkの文字列のセットは、デカルト積のすべての順列の和集合であるセットに等しくなります。 どこ 必要な繰り返しです。それが役に立ったかどうかはわかりませんが、プロのように聞こえます:)とにかく、| A |にしましょう ビン、繰り返しになる任意の2つ(同じものであっても)を選択し、次にもっと増やして掛けます(最初の4つはすでに選択されています、参照してください?)。今、私は離散数学からその式を見つける必要があります。