登录
OEIS由OEIS基金会的许多慷慨捐赠者.

 


A327296型
a(n)是可以从n的二进制表示的数字中获得的最大二进制回文的十进制值。
1
0, 1, 1, 3, 1, 5, 5, 7, 1, 9, 9, 7, 9, 7, 7, 15, 1, 17, 17, 21, 17, 21, 21, 27, 17, 21, 21, 27, 21, 27, 27, 31, 1, 33, 33, 21, 33, 21, 21, 51, 33, 21, 21, 51, 21, 51, 51, 31, 33, 21, 21, 51, 21, 51, 51, 31, 21, 51, 51, 31, 51, 31, 31, 63, 1, 65, 65, 73, 65, 73
抵消
0,4
评论
a(n)是可以从n的二进制表示构造的最大值二进制回文。回文可能没有前导0。
从二进制字符串构造回文时,只能对数字进行置换和删除。也就是说,构造的回文将包含与原始二进制字符串相同或更少的1和0。
算法如下:
如果原始二进制字符串中有奇数个1,则首先在输出回文的中间放置一个1。请注意,剩余的1数现在是偶数。如果1的剩余数为零,那么构造的回文就是“1”,因为构造的回函不能有前导零。如果剩余的1数大于零,则将剩余的0均匀地放在前面放置的“1”的两侧。由于输出必须是回文,如果原始字符串包含奇数0,则将丢弃其中一个0。最后,将剩下的1放在构造的回文的两端。
如果原始二进制字符串中有偶数个1,首先将原始字符串中的所有0放在回文的中心,然后将1均匀地放在0的两侧。
链接
例子
可以构造的最大回文:
对于101,它是101,因此a(5)=5。
对于1000,它是1,因此a(8)=1。
对于1010,它是1001,因此a(10)=9。
对于1011,它是111,因此a(11)=7。
数学
a[n_]:=块[{o,z},{o,z}=数字计数[n,2];如果[o==1,1,如果[OoddQ@o,{o,z}=楼层[{o,z}/2];2^(z+o)+(2^o-1)(1+2^(o+1+2z)),o=o/2;(2^o-1)(1+2^(o+z))]]];a/@范围[0,70](*乔瓦尼·雷斯塔2019年9月16日*)
黄体脂酮素
(Python)
定义a(n):
#将n转换为二进制字符串
bin_str=字符串(bin(n))[2:]
#在字符串中计数1和0
零=bin_str.count('0')
ones=len(bin_str)-零
如果(1==1或1==0):
返回个
pal=“”
如果(个%2==1):
#首先在字符串中间放置一个“1”
pal=“1”
#在中心“1”周围放置尽可能多的0
对于范围(0,零>>1)中的i:
pal=“0”+pal+“0”
其他:
#将所有0放在中间
对于范围(0,零)中的i:
pal+=“0”
#将剩余的1(保证是偶数,因为中间放了一个“1”)放在回文的两边
对于范围(0,个>>1)中的i:
pal=“1”+pal+“1”
#返回构造的回文的整数值
返回int(pal,2)
交叉参考
囊性纤维变性。A006995号(二进制回文),A057148号.
关键字
基础,非n,容易的
作者
Ian乐队2019年9月16日
扩展
更多术语来自乔瓦尼·雷斯塔2019年9月16日
状态
经核准的

查找|欢迎光临|维基|注册|音乐|地块2|演示|索引|浏览|网络摄像头
贡献新序列。或评论|格式|样式表|变换|超级搜索|最近
OEIS社区|维护人OEIS基金会。

许可协议、使用条款、隐私政策。.

上次修改时间:美国东部夏令时2024年9月21日08:46。包含376084个序列。(在oeis4上运行。)