%I#113 2024年6月2日14:33:35
%S 0,101011100101010101011001100110011001011000101010101011100,
%电话:1011001010110100101110001100101011001101001011010100,
%U 1101100011000101110001110011101000111100001010101010101100101011001110011010101011011100
%N Dyck语言被解释为按升序排列的二进制数。
%C a(n)是A014486(n)的二进制展开式_Joerg Arndt_,2013年2月27日
%C将“1”替换为“(”,将“0”替换为”)将生成格式良好的括号表达式(第一个术语是空字符串)
%C、()、()()(第)、(第)()、(())()(),()(()(…)),(())((())()),()((()())), ()(((()))), (())()()(), (())()(()), (())(())(), (())(()()), (())((())), (()())()(), (()())(()), (()()())(), (()()()()), (()()(())), (()(()))(), (()(())()), (()(()())), (()((()))), ((()))()(), ((()))(()), ((())())(), ((())()()), ((())(())), ((()()))(), ((()())()), ((()()())), ((()(()))), (((())))(), (((()))()), (((())())), (((()()))), ((((()))))
%C术语a(0)=0表示空字符串。-_Joerg Arndt_,2013年2月27日
%D Donald E.Knuth,《计算机编程的艺术》,第4A卷:组合算法,第1部分,Addison-Wesley,2011年,第7.2.1.6节,第443页(算法P)。
%H Paolo Xausa,n表,n=0..23713的a(n)(Reinhard Zumkeller的术语0..2055)
%H Gennady Eremin,<a href=“https://arxiv.org/abs/1909.07675“>平衡括号、字典序列和Dyck多项式的动力学</a>,arXiv:1909.07675[math.CO],2019。
%H FindStat-组合统计查找器,<a href=“https://www.findstat.org/CollectionsDatabase/DyckPaths网站/“>Dyck路径</a>。
%H Antti Karttunen,<a href=“https://web.archive.org/web/20070202072844/http://ndirty.cute.fi/~karttu/matikka/Nekomorphisms/a014486.ps.gz“>初始项的图示,大小为n=7。
%H Antti Karttunen,<a href=“http://oeis.org/wiki/Catalan_Automorphisms“>加泰罗尼亚自形。
%H Zoltán Kása,<a href=“https://doi.org/10.48550/arXiv.1002.2625“>Dyck单词的生成和排名</a>,arXiv:1002.2625[cs.DM],2010年2月。
%H Peter Luschny,Knuth算法P和U的Python实现。
%H R.J.Mathar,<a href=“http://arxiv.org/abs/1603.00077“>平面中非相交圆的拓扑不同集,arXiv:1603.00077[math.CO],2016。
%H Indranil Ghosh,<a href=“/A063171/A063171.txt”>用于计算此序列的Python程序</a>。
%H Paolo Xausa,Knuth算法P和U的Mathematica实现。
%F Chomsky-2语法,带有公理s、终端字母{0、1}和三个规则s->ss、s->1s0、s->10。
%F a(n)=A071152(n)/2。
%F a(n)=A007088(A014486(n))。
%e s->ss->1s0s->11s00s->111000s->1110010
%p seq(转换(d,二进制),选择中的d(isA014486,[seq(0..640)]);#_Peter Luschny_,2024年3月13日
%t balancedQ[0]=真;balancedQ[n_]:=(s=0;Do[s+=如果[b==1,1,-1];如果[s<0,返回[False]],{b,整数位数[n,2]}];返回[s==0]);FromDigits/@IntegerDigits[Select[Range[0,684],balancedQ],2](*_Jean-François Alcover_,2013年7月24日*)
%t(*使用Knuth的TAOCP第7.2.1.6节中的算法P-参见参考和链接。*)
%t列表[n_]:=块[{a=扁平[表[{1,0},n]],m=2*n-1,j,k},
%t从数字/@Reap[
%t当[True,
%t母猪[a];a[[m]]=0;
%t如果[a[[m-1]]==0,
%ta[[--m]]=1,j=m-1;k=2*n-1;
%t当[j>1&&a[[j]]==1时,a[[j--]]=0;a[[k]]=1;k=2];
%t如果[j==1,则中断[]];
%t a[[j]]=1;m=2*n-1]
%t]][[2,1]]];
%t连接[{{0},{10}},数组[alist,4,2]](*_Paolo Xausa_,2024年3月15日*)
%o(哈斯克尔)
%o导入数据。集合(singleton、deleteFindMin、union、fromList)
%o newtype Word=单词字符串派生(Eq、Show、Read)
%o实例Ord Word,其中
%o单词我们<=单词vs |长度我们==长度vs=我们<=vs
%o |否则=长度us<=长度vs
%o a063171 n=a063171_list!!(n-1)
%o a063171_list=dyck$singleton(单词“S”),其中
%o dyck s|null ws=(读取w::Integer):dyck s'
%o|others=dyck$unions'(fromList$concatMap-gen-ws)
%o其中ws=过滤器((=='S')。头部。snd)$
%o映射(`splitAt`w)[0..长度w-1]
%o(单词w,s')=删除查找最小值s
%o gen(us,vs)=地图(单词。(us++)。(++尾vs))[“10”,“1S0”,“SS”]
%o--_Reinhard Zumkeller,2011年3月9日
%o(Python)
%o定义A063171_list(限制):
%o如果is_A014486(k),则返回[0]+[int(bin(k)[2::]),表示范围(1,limit)内的k
%o打印(A063171_list(700))#_Peter Luschny_,2022年7月30日
%o(Python)
%o从itertools导入计数,islice
%o来自sympy.utilities.iterables导入multiset_permutations
%o def A063171_gen():#术语生成器
%o产量0
%o表示计数(1)中的l:
%o对于multiset_permutation('0'*l+'1'*(l-1))中的s:
%o c,m=0,(l<<1)-1
%o对于范围(m)内的i:
%o如果s[i]==“1”:
%o c+=2
%o如果c<i:
%o中断
%o其他:
%o生成10**m+int(''.join(s))
%o A063171_list=列表(岛屿(A063171_ gen(),30))#_Chai Wah Wu_,2023年11月28日
%o(PARI)a_rows(N)=我的(a=Vec([[0]],N));对于(r=1,N-1,my(b=a[r],c=List());foreach(b,t,对于(i=1,如果(t,赋值(t,10),0)+1,listput(~c,t*100+10^i));a[r+1]=Vec(c));a、 \\_路德·范托尔,2024年6月2日
%Y参见A007088、A071153。
%Y A014486给出了从十进制转换为二进制的这些术语。
%K基,nonn
%0、2
%A _Reinhard Zumkeller,2001年7月9日
%E a(0)=0,由_Joerg Arndt_编制,2013年2月27日
|