前缀正常单词的Bubble - Flip生成算法及排列排序研究
1. Bubble - Flip算法
Bubble - Flip算法用于生成给定长度 $n$ 的所有前缀正常单词。以下是该算法的具体步骤:
Algorithm 3. Bubble - Flip
For a given n, generates all prefix normal words of length n
1 w = 0^n
2 Visit()
3 w = 10^(n - 1)
4 Visit()
5 w = 110^(n - 2)
6 Generate PN(w)
该算法首先初始化单词 $w$ 为全 0 串,然后依次生成特定形式的前缀正常单词。
2. 具有给定关键前缀的前缀正常单词
有人推测所有前缀正常单词的关键前缀的平均长度为 $O(\log n)$。利用Bubble - Flip算法,我们可以生成具有给定关键前缀 $u$ 的所有前缀正常单词,这有助于统计具有该关键前缀的前缀正常单词的数量。
对于 $s > 1$,$t \geq 0$,用 $CritSet(s, t, n)$ 表示长度为 $n$ 且关键前缀为 $1^s0^t$ 的所有前缀正常单词的集合。有如下引理:
- 引理15 :固定 $s \geq 1$ 和 $t \geq 0$,设 $u = 1^s0^t$。则
[
CritSet(s, t, n) =
\begin{cases}
{u} & \tex