我们将与数字表示相关的序列视为回文的和,并特别研究了这个猜想(2016年证明)[1])任何n都可以写成最多3个回文的和。
相关序列
基本序列
其他相关序列
以下序列与n作为回文和的分解有关,它们基于上述内容,因此更加复杂,尽管“贪婪分解”只是上述内容的迭代A261424型=n-预计算(n)。
- A261675型=与n相加的最小回文数
- A088601型=通过贪婪算法在n的分解中的回文数(即A261424型达到零)
- A109326号=最小正数,需要使用贪婪算法将n个步骤表示为回文的总和。
- A261132型,A261422型:将n写成三个回文的和的方法。
- A035137号=不是两个回文之和的数字:21、32、43、54、65、76、87、98、201、1031。。。
- A104444号=不是两个回文差异的数字:1020,1029,1031,1038,1041,1047,1051,1061。。。
- A262087型=最大的回文p,使n-p再次成为回文,如果不存在这样的p,则为0。这是以下内容的一个非常简单的变体:
- sumOfPal()=如果n可以写为m而不是m-1回文的和,a(n)=n-P1,其中P1是最大的回文,因此n-P1是m-1回音的和。
- 这也是A261424型,其中precpal(n)被替换为“最大回文<=n,使得差值可以写为最小回文数之和”。
- 事实上,这个序列恰好与n=1099和更简单的A261424型=n-预计算(n)。[检查:请参阅中的注释2014年2月24日]
回文顺序
N.J.A.Sloane根据被反驳的[2]
- 猜想:所有足够大的N都是三个回文的总和,其中最大的是precpal(N)或prevpal(N)。
埃里希·弗里德曼引用数学魔术06/99:
和相关序列:
作为回文和的分区算法
这里我们只考虑那些旨在使用少量回文找到分解的算法,例如n=1+1++1=n*1,这当然也是回文的划分。当然,我们的目标是找到一个词条数尽可能少的回文的总和。
贪婪算法
最简单的非平凡算法包括连续减去不超过n的最大回文,即,迭代A261424型.由于差分至少少了一个数字(更准确地说,最多是楼层(L/2)数字),因此可以肯定,该算法将终止并将n分解为最多上限(log_2(n)+1)项。顺序A088601型产生项数
less-than-3算法
在他们2016年的预印本中arXiv公司:1602.06208,Cilleruelo等人。[1]证明任何数都可以写成最多3个回文的和,在任意基上>=5。这个证明是基于5种“类型”数字的区分的算法。(……待写成……)
less-than-49算法
在他们的论文[…]中,作者证明了任何数字都可以写成最多49个回文的和。证据基于以下观点:(……待写成……)
一种改进的贪婪算法
sumOfPal(N,m)函数检查N是否是最多m个回文的和。
策略是,对于m>2,减去一个接近于prevpal(N)(=最大回文<N)的大回文P,并应用“递归”sumOfPal(N-P,m-1)。在成功之前,根据下面进一步开发的优化,在P上迭代“下一个较小的回文”函数或更好的函数。
对于m<=2,我们将使用有效的算法将N分解为2个回文的和,P和N-P≤P。我们定义功能sum2pal(N)以产生最小的此类N-P。
最简单的暴力算法是再次以P=prevpal(N)开始,并迭代prevpal()函数。
但我们可以做得更好:事实上,如果P>>N-P,那么P的第一个数字与N的数字相同,P的最后一个数字相同,相反。
因此,我们通过计算N-prevpal(N)得到差值N-P的最后几位数,其中选择了prevpalN而不是反向(N),以确保不存在会产生负差值的“过流/下溢”。
但因为我们希望N-P是一个回文,所以它的最后一个数字也决定了第一个数字。
知道这些数字大大减少了所需测试的次数:我们只需在候选D中填写一定数量的“中间数字”,以表示差异N-P。
例子
将n=3141592653589分解为n=p+d,p>>d。
由于d要小得多,p大致等于n,并且是回文的,因此p=314…413。因此,d=n-p=314…589-314…413=。。。176为了使其简单明了,我们计算:n-precpal(n)=702176。
因此,虽然我们不知道它的位数,但我们知道d=671…176。
所以,不要扫描全部的小于n的回文(通过反复减去10^6得到(其中6=floor((长度n)/2))并相应地完成后半位数),我们知道p~n-6.71*10^k,其中k=6,7,8。。。。
我们不必考虑回文p,因为它的差n-p不是以数字67开始的。。。。要检查的唯一差异是:
- 3141592653589-6712176(d的长度不能小于n的一半,除非p=prevpal(n),最大回文<n)。
- 3141592653589-67122176(此处n/d>10^4,因此我们知道d的前4位)
- 3141592653589-671xyx176(此处n/d<1000,因此d的第四位数不再为人所知)。
我们最终得出p=3140921290413,d=671363176。
我们看到,当d的位数约为n的一半时,这种方法特别有效,当d位数接近n的位数时,这种效率会变得更高。但是,对wr.t.的改进prevpal()的brute-force迭代仍然非常重要,如当前示例所示:我们只需要检查不到40个d值(xy=00..36),这比prevpal(n)和p=3140921290413之间的所有~700个回文要少得多。
在其他基础上
待写入。
关于此页面
修订历史记录
- 已创建初始版本。—MFH公司2015年9月10日20:40(UTC)
- 添加了关于回文顺序的部分。—MFH公司2015年9月14日03:34(UTC)
将此页面引用为
M.F.Hasler,用户:M._F._Hasler/Work_in_progress/Sum_of_palindromes.-来自整数序列在线百科全书®(OEIS®)wiki。可在https://oeis.org/wiki/用户:M._F._Hasler/Work_in_progress/Sum_of_palindromes
工具书类