Saya ingin menghitung jumlah string lebih dari alfabet yang terbatas , yang tidak mengandung pengulangan, dan maksud saya untuk setiap substring dari , , tidak ada salinan terpisah dari di . Sebagai contoh, biarkan. Kemudian adalah salah satu string yang ingin saya hitung, karena untuk substring, tidak ada salinan terpisah. Namun, mengandung pengulangan seperti itu.
Jika seseorang sudah menemukan formula yang berguna, silakan tautkan. Kalau tidak, saya akan merujuk kembali ke posting ini di artikel apa pun yang saya tulis, jika saya menggunakan jawaban seseorang.
Ini adalah contoh lain. Mari kita coba untuk membangun string panjang, yang tidak mengandung pengulangan:
aaa (tidak bisa a)
aaab (a atau b)
aaabbb (tidak bisa b)
aaabbba (tidak bisa b atau a)
aaaba (tidak bisa a atau b)
Jika kita membangun pohon, kita bisa menghitung jumlah node, tetapi saya ingin rumus.
Sunting: Yah, itu tidak menakutkan seperti yang saya pikir pertama kali jika kita mengonversi ini menjadi masalah pemilihan tempat sampah. Satu set string dengan panjang k dengan setidaknya satu pengulangan sama dengan set yang merupakan gabungan dari semua permutasi dari produk kartesius: dimana adalah pengulangan yang diperlukan. Saya tidak tahu apakah itu membantu, tapi itu terdengar pro :) Pokoknya, biarkan mereka | | | nampan, pilih dua (bahkan yang sama) untuk menjadi pengulangan, lalu pilihsemakin banyak dan gandakan (4 yang pertama sudah dipilih, lihat?). Sekarang saya hanya perlu menemukan formula itu dari matematika diskrit.
sumber
Jawaban:
Ini menjawab pertanyaan setelah jumlah kata bebas berulang per ukuran, menyiratkan bahwa jumlah yang diinginkan bahkan ada.
Definisi: Panggil ulangi gratis jika dan hanya jika tidak mengandung faktor dengan dan .w ∈ Σ x yx x ∈Σ≥ 2 y∈Σ∗
Klaim: Untuk alfabet terbatas dengan , tidak ada kata bebas-ulang yang panjangnya lebih dari .Σ | Σ | =k 2k2+ 1
Ide Bukti: Dengan prinsip lubang-merpati. Ambil kata dengan panjang (atau kata yang lebih panjang dan pertimbangkan awalan panjang ini), yaitu . Anggap bebas-pengulangan; itu berarti untuk semua (jika tidak, kami harus mengulangi). Oleh karena itu, ada banyak pasangan simbol; ini bertentangan . Jadi tidak bebas dari pengulangan.w 2k2+ 2 w =Sebuah0Sebuah′0...Sebuahk2Sebuah′k2 w SebuahsayaSebuah′saya≠SebuahjSebuah′j i ≠ j k2+ 1 |Σ2| =k2 w □
Perhatikan bahwa ini adalah bukti kasar: faktor mungkin membuat pengulangan lebih cepat.Sebuah′sayaSebuahi + 1
Notasi:
sumber