生成项链、林登语和亲属

在字母$\{0,1,\ldots,k-1\}$上以长度$n$旋转的方式生成项链、林登单词和其他等价对象。情况$k=2$是位字符串。
对象类型
字符串长度$n$ (最多20)
字母表大小$k$
固定密度 (介于0和$n$之间)
固定内容 (例如,当$n=7$和$k=2$时为52)
禁止的子字符串 (例如0 0 1)
输出格式
输出  编号绘图

对象信息

A类项链是$k$-ary字符串在旋转下的等价类。我们以字典上最小的字符串作为每个等价类的代表,并在程序的输出中使用它。A类林登语是不定期的项链代表。未标记的项链是字母符号排列下的项链等价类。请注意,通过排列项链的字母符号,然后将字符串旋转到其词典编纂的最小位置,结果就是项链代表。在所有字母符号的排列中,词汇表上最小的项链被用作未标记项链的代表。例如,这里有一个未标记三元项链的等价类:$\{011222,022111,001112,002221,000122,000211\}$。从词典编纂的角度来看,最小的是$000122$,因此它被选为代表。有关在恒定摊销时间内生成项链和Lyndon单词及其未标记对应词的信息,请参见[CRS+00]。

在许多应用中,并非所有项链都是必需的,但只有固定密度,这意味着非零条目的数量是固定的。在更一般的情况下,人们可能想要一份项链清单固定内容其中每个字符的出现次数是固定的。有关在恒定摊销时间内生产固定含量和固定密度项链的信息,请参见[Saw03]和[RS99]。不包含指定序列作为子串的项链称为带有禁止的子字符串.例如,当考虑所有带有$n=4$和$k=2$的项链时,限制条件是没有$00$子串,我们得到集合:$\{0101,0111,1111\}$。有关生成带有禁止子串的项链的更多信息,请参见[RS00]。

A类手镯是一条可以翻转的项链。有关在恒定摊销时间内生成手镯的信息,请参见[Saw01]。有关固定内容的手镯,请参见[KSAH13]。非同构单位区间图的数量与长度为$2t-1$、内容为$(t,t-1)$的二进制链的数量相同。A类幸运手链是考虑仿射变换组$j\mapstoa+dj\pmodn$对指数的作用的手镯的推广。有关更多信息,请参阅[ĐKRS15]。

A类弦图是由$n$和弦成对连接的定向圆(逆时针)上的$2n$点的集合。有关使用$n$和弦有效生成所有和弦图的信息,请参见[Saw02]。我们通过绕圆圈走来对这样的图进行编码,并且对于每个点,我们记录沿着同一和弦到达其伙伴的前进步数(逆时针方向)。例如,对于$n=3$,凸包上有三条弦的图由151515编码。

林登括号对应于自由李代数第n个齐次分量的基。有关以每个元素$O(n)$time为单位生成这种基的信息,请参见[SR03]。

枚举(OEIS)

整数序列在线百科全书中二进制对象的链接:$k$-ary项链和$k$-ary Lyndon单词的枚举公式:\[N_k(N)=\frac{1}{N}\sum_{d\vertn}\varphi(d)k^{N/d},\qquad L_k(N)=\frac{1{N}\sum{d\Vertn}\mu(d$k$-ary手镯的计数公式:\[B_k(n)=\left\{\begin{array}{ll}\压裂{1}{2}N_k(N)+\压裂{1{4}(k+1)k^{N/2}&\text{如果$N$是偶数,}\\\压裂{1}{2}N_k(N)+\压裂{1{{2} k个^{(n+1)/2}&\text{如果$n$是奇数。}\结束{array}\右键。\]非同构单位区间图的数量与带有$n$黑色和$n-1$白色珠子的手镯的数量相同。二进制未标记项链的计数公式:\[U_2(n)=N2(n)-\frac{1}{2n}\sum_{\text{奇数}d\vertn}\varphi(d)2^{n/d}.\]弦图的枚举公式:\[C(n)=\left\{\begin{array}{ll}\压裂{1}{2n}\显示样式{sum{pq=2n}\varphi(p)p^{q/2}(q-1)!!}&\文本{如果$p$是奇数,}\\\压裂{1}{2n}\显示样式{sum{pq=2n}\varphi(p)\sum{j=0}^{lfloor q/2\rfloor}{q\choose 2j}(2j-1)!}&\文本{如果$p$是偶数。}\右端{数组}。\] 具有固定内容的$k$-ary项链的枚举公式:\[N_k(N_1,N_2,\ldots,N_k)=\frac{1}{N}\sum_{j\vert\gcd(N_1,N_2,\tdots,N_k)}\varphi(j)\frac}(N/j)!}{(n1/j)!(n2/j)!\cdots(nk/j)当$k=2$时,上述公式可以应用并简化为二元固定密度项链的情况。

下载源代码

[压缩C源代码(GNU GPL)]

工具书类