7
$\开始组$

我已经试了很长时间了。例如:

N=5。然后我们可以得到11011,它只是一个子串。

但如果N=9,

我们可以有许多形式的二进制字符串

11011xxxx 2^4组合

x11011xxx 2^4组合

xx11011xx 2^4组合

xxx11011x 2^4组合

xxxx11011 2^4组合

但这是过度计算的情况。(110110110)是一个字符串,但计为2。

我们如何避免这种情况?

注:这个问题出现在2016年的ZIO中。

ZIO2016年

$\端组$
1

2个答案2

重置为默认值
11
$\开始组$

这里我们正在寻找长度为$N$的二进制字符串包含子字符串$11011$。结果是$2^N$这个数字。

所谓的Goulden-Jackson聚类法是推导生成函数针对此类问题。

我们考虑从字母表$$\mathcal{V}=\{0,1\}$$和坏的不允许作为我们正在寻找的单词的一部分的单词。

我们导出了一个函数$F(x)$,其系数为$x^N$,即需要的长度为$N$的单词数。根据论文(第7页),生成函数$F(x)$为\开始{align*}F(x)=\frac{1}{1-dx-\text{weight}(\mathcal{C})}\结束{align*}$d=|\mathcal{V}|=2$,字母表的大小权重数字$\mathcal{C}$与\开始{align*}\text{weight}(\mathcal{C})=\text{weight{(\mathcal{C}[11011])\结束{align*}

我们根据论文计算\开始{align*}\text{weight}(\mathcal{C}[11011])&=-x^5-\text{weight{(\mathcal{C}[11011')\left(x^3+x^4\right)\结束{align*}

具体如下:生成函数$F(x)$用于从$\{0,1\}$生成的字数包含子字$11011$is\开始{align*}F(x)&=\frac{1}{1-dx-\text{weight}(\mathcal{C})}\\&=\压裂{1}{1-2x+\压裂{x^5}{1+x^3+x^4}}\\&=\压裂{1+x^3+x^4}{1-2x+x^3-x^4-x^5}\结束{align*}

由于生成函数计算长度为$N$的所有二进制字符串的数字$2^N$为\开始{align*}\压裂{1}{1-2x}=1+2x+4x^2+\cdots\结束{align*}

我们得出结论:包含字符串$11011$的长度为$N$的数字二进制字符串的生成函数为

\开始{align*}\压裂{1}{1-2x}-F(x) &=\压裂{1}{1-2x}-\裂缝{1+x^3+x^4}{1-2x+x^3-x^4-x^5}\\&=\压裂{x^5}{(1-2x)(1-2x+x^3-x^4-x^5)}\\&=x^5+4x^6+12x^7+31x^8+75x^9+175x^{10}\\&\qquad 399x^{11}+894x^{12}+1975x^{13}+4133x^{14}+9330x^{15}+\cdots\结束{align*}

最后一行(1)是在Wolfram Alpha的帮助下计算的,我们可以看到长度小于等于$N=15$的字符串的解的数量。

例如,包含子字符串$11011$的长度为$7$的$12$字符串是

\开始{数组}{cccc}\颜色{蓝色}{00}11011\四边形\\quad\color{blue}{0}11011\颜色{蓝色}{0}\quad&\quad11011\color{蓝色{00}\\\颜色{蓝色}{01}11011\四边形\\quad\color{blue}{0}11011\颜色{蓝色}{1}\四元和四元11011\颜色{蓝}{01}\\\颜色{蓝色}{10}11011\四边形\\quad\color{blue}{1}11011\颜色{蓝色}{0}\四元和\quad11011\颜色{蓝}{10}\\\颜色{蓝色}{11}11011\四边形\\quad\color{blue}{1}11011\颜色{蓝色}{1}\四边形&\quad11011\颜色{蓝}{11}\\\结束{数组}

$\端组$
8
  • 1
    $\开始组$ 一个详尽的答案,引起了广泛的兴趣!马库斯,很高兴从你的帖子中学习,谢谢 $\端组$ 评论 2016年9月9日18:14
  • $\开始组$ @GCab:非常感谢您的精彩评论!:-) $\端组$ 评论 2016年9月9日18:40
  • $\开始组$ (+1). 这是一个很好的工作。你会很高兴知道DFA方法使用命令生成相同的答案系数(1/(1-2*z)-GFNC([1,1,0,1,1]],2,真));. $\端组$ 评论 2016年9月9日20:11
  • $\开始组$ @马克·里德尔:非常感谢,马克!我还用一小段R代码进行了检查。但是,你的角色并没有那么优雅。:-) $\端组$ 评论 2016年9月9日20:15
  • $\开始组$ 代码可以是数学帖子的有益补充,允许有效地交流需要大量符号的简单想法。 $\端组$ 评论 2016年9月9日20:17
2
$\开始组$

假设$k$是11011的块数,假设$j$是块的单个重叠数(给出$11011011$),假设$l$是双重重叠数(给定$1101011$)。

然后有$\binom{k-1}{j}$种方法选择单重叠,$\binom{k-1-j}{l}$种方式选择双重叠,

$\binom{n-4k+l}{k-j-l}$选择块位置的方法(因为有$k-j-l$分隔符

和$n-5k+j+2l$剩余数字)以及$2^{n-5k+j+2l}$选择其他数字的方式。

使用Inclusion-Exclusion,这将得到$$\sum_{k=1}^{lfloor\frac{n-2}{3}\rfloor}(-1)^{k+1}\sum_{j=0}^{k-1}\sum{l=0}^{k-1-j}\binom{k-1{{j}{k-j-l}2^{n-5k+j+2l}$$。

$\端组$

你必须登录来回答这个问题。

不是你想要的答案吗?浏览标记的其他问题.