|
|
A367508型 |
| 圣诞树模式图的迭代,按行读取,去掉前导零并解释为十进制数(参见注释中的描述)。 |
|
18
|
|
|
0, 1, 10, 0, 1, 11, 100, 101, 10, 110, 0, 1, 11, 111, 1010, 1000, 1001, 1011, 1100, 100, 101, 1101, 10, 110, 1110, 0, 1, 11, 111, 1111, 10100, 10101, 10010, 10110, 10000, 10001, 10011, 10111, 11000, 11001, 1010, 11010, 1000, 1001, 1011, 11011, 1100, 11100, 100, 101, 1101, 11101
(列表;图表;参考;听;历史;文本;内部格式)
|
|
|
抵消
|
1,3
|
|
评论
|
Knuth(2002年和2011年)对这些模式进行了描述,他将其称为“圣诞树模式”,因为如果排列得当(即,将其列居中对齐),它们就像一棵圣诞树(参见示例),也因为它们是在Knuth第九届年度“圣诞树讲座”中提出的在斯坦福大学(尽管在那次演讲中他们被展示为“倒立向下”)。
其思想是将i元素的所有子集(e_1…e_i)排列成最大长度的不相交链,链中的每个子集都是长度为i的位串,如果元素e_b在子集中,则第b位为1,否则为0。每个子集必须包含一个小于链中下一个元素的元素。事实证明,这种安排具有二项式(i,floor(i/2))=A001405号(i) 行(链)和i+1列;当列居中对齐时,给定列中的所有子集都包含相同数量的元素。
要迭代生成这些模式,我们可以从链“01”开始,这是顺序为1的模式。后续迭代生成顺序为2、3……的模式。。。,i.在每次迭代中,对于前一个订单模式的每个链c,我们生成一个或两个新链,如下所示。如果链c只有一个子集,则生成一个新链:(c_1)0,(c_1)1;如果链c有多个子集,我们生成两个新链:(c2)0。。。,(cs)0和(c1)0。。。,(c_s)1,其中s是链c的子集数,(c_k)b是链c与b连接的第k个子集。由此生成的新链形成以下顺序模式。
有关更多属性,包括与匹配括号、树和加泰罗尼亚数字的连接,请参阅Knuth(2002和2011)。
|
|
参考文献
|
Donald E.Knuth,《计算机编程的艺术》,第4A卷:组合算法,第1部分,Addison-Wesley,2011年,第7.2.1.6节,第457-460页。
|
|
链接
|
N.de Brujin、C.Tengbergen和D.Kruyswijk,关于一个数的除数集,涅乌拱门。Wiskunde 231951年,第191-193页。
柯蒂斯·格林和丹尼尔·克莱特曼,斯伯纳定理的强形式《组合理论杂志》,A辑,第20卷,第1期,1976年,第80-88页。
|
|
例子
|
下面显示了前4个树模式顺序。
.
订单1:
0 1
.
订单2:
10
00 01 11
.
订单3:
100 101
010 110
000 001 011 111
.
订单4:
1010
1000 1001 1011
1100
0100 0101 1101
0010 0110 1110
0000 0001 0011 0111 1111
.
|
|
数学
|
使用[{imax=6},Map[FromDigits,NestList[Map[Delete[{If[Length[#]>1,Map[#<>“0”&,Rest[#]],Nothing],Join[{#[[1]]<>“O”},Map[#<>”1“&,#]]},0]&],{{{“0”,“1”}},imax-1],{3}]](*生成顺序为6*的项)
|
|
黄体脂酮素
|
(Python)
从itertools导入islice
从functools导入reduce
def uniq(r):返回reduce(lambda u,e:u if e in u else u+[e],r,[])
def agen():#术语生成器
R=[[“0”,“1”]]
而R:
r=r.pop(0)
map的产量(λb:int(b),r)
如果len(r)>1:r.append(uniq([r[k]+“0”代表范围(1,len(r))中的k))
R.append(uniq([R[0]+“0”,R[0]=“1”]+[R[k]+“1”代表范围(1,len(R))中的k))
打印(列表(islice(agen(),62))#迈克尔·布拉尼基2023年11月23日
(朱莉娅)
R=[[“0”,“1”]]
seq=国际[]
op=(r,n)->[r[k]*n代表k in 2:长度(r)]
对于_ in 1:行
r=popfirst!(右)
追加!(seq,map(b->解析(Int,b),r))
长度(r)>1&&推!(R,op(R,“0”)
推!(R,[[R[1]*“0”,R[1]*“1”];op(R,“1”)])
结束
返回序列结束
|
|
交叉参考
|
|
|
关键词
|
非n,标签,美好的,基础
|
|
作者
|
|
|
状态
|
经核准的
|
|
|
|