%I#26 2023年5月19日17:28:32
%S 0,1,2,3,4,7,6,5,8,15,14,13,12,10,9,16,31,30,29,28,27,26,25,24,23,
%电话:22,21,20,19,18,17,32,63,62,61,60,59,58,57,56,55,54,53,52,51,50,49,48,
%U 47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,64127126125124123单位
%自然数的简单对合:按相反顺序列出(2^k)-1个数(从(2^k)+1到2^(k+1)-1)的每个块,并确定2的幂。
%C来自_Kevin Ryde_,2020年12月29日:(开始)
%C a(n)是n,对最高有效位和最低有效位之间的每个位应用0<->1补码,但不包括这两个位。Dijkstra使用这种形式,并将补码位称为“内部”数字。
%C不动点a(n)=n为n=0和n=A029744。这些n按结构为n=2^k,每个反向块的中间为n=3*2^k。就位补码而言,这些n的最高和最低1位之间没有任何关系。
%C(结束)
%H Michael De Vlieger,n的表,a(n)表示n=0..16384</a>
%H Edsger W.Dijkstra,<a href=“http://www.cs.utexas.edu/users/EWD/ewd05xx/EWD578.PDF“>关于函数“fusc”的更多信息,1976年。转载于Edsger W.Dijkstra,<a href=“https://doi.org/10.1007/978-1-4612-5695-3_41“>《计算机文选》,Springer-Verlag出版社,1982年,第230-232页。
%H<a href=“/index/Per#IntegerPermutation”>自然数排列序列的索引项</a>
%F a(0)=0;如果n=2^k,a(n)=n;如果n=2^k+i(i>0且i<2^k)a(n)=2^(k+1)-i=2*A053644(n)-A053645(n)。
%F A002487(a(n))=A002486(n),n>=0[迪克斯特拉]。-_Yosu Yurramendi,2021年3月18日
%e来自Kevin Ryde,2020年12月29日:(开始)
%e n=4、5、6、7、8
%e a(n)=4,7,6,5,8在2次幂之间
%e<----块反转
%e或单个项(按位),
%e n=236=二进制11101100
%e a(n)=148=二进制10010100之间的补码
%e^^^高和低1
%e(结束)
%t数组[(1+Boole[#1-#2!=0])#2-#1+#2&@{#,2^(整数长度[#,2]-1)}&,69](*_Michael De Vlieger_,2023年1月1日*)
%o(方案:)(定义(A122155n)(cond((<n 1)n)((pow2?n)n)(else(-(*2(A053644n))(A053645n)))))
%o(定义(功率2?n)(和(>n 0)(零?(A004198bi n(-n 1))))
%o(PARI)a(n)=位异或(n,如果(n,max(0,1<<logint(n,2)-2<<evaluation(n,2中)));\\_Kevin Ryde,2020年12月29日
%o(R)
%o maxblock<-5#(可选)
%o a<-1
%o表示(m in 1:maxblock){
%o a[2^m]<-2^m
%o表示(k in 1:(2^m-1))a[2^m+k]<-2^(m+1)-k
%o}(o)
%o(a<-c(0,a))
%o#_Yosu Yurramendi,2021年3月18日
%o(Python)
%o定义A122155(n):返回int(('1'if(m:=len(s:=bin(n)[2:])-(n&-n).bit_length())>0 else“”)+“”.join(str(int(d)^1)for d in s[1:m])+s[m:],2)if n else 0#_Chai Wah Wu_,2023年5月19日
%Y参考A054429、A122198、A122199。
%Y参见A029744(定点)、A334045(补码高/低1)、A057889(位反转)。
%K nonn公司
%O 0.3
%安蒂·卡图内恩,2006年8月25日
|