本网站由以下捐款支持:OEIS基金会.

用户:M.F.Hasler/进行中的工作/回文总和

来自OeisWiki
跳转到:航行,搜索

我们将与数字表示相关的序列视为回文的和,并特别研究了这个猜想(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:

和相关序列:

  • A261906型=两个数之和非零回文
  • A260255型=可以写为二之和的数字非负的以10为基数的回文。

作为回文和的分区算法

这里我们只考虑那些旨在使用少量回文找到分解的算法,例如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开始的。。。。要检查的唯一差异是:

  1. 3141592653589-6712176(d的长度不能小于n的一半,除非p=prevpal(n),最大回文<n)。
  2. 3141592653589-67122176(此处n/d>10^4,因此我们知道d的前4位)
  3. 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

工具书类

  1. 1 1.1 Javier Cilleruelo,Florian Luca,Lexis Baxter(2016):每个正整数都是三个回文的和。arXiv公司:1602.06208
  2. M.Sigg(2015),“关于约翰·霍夫曼的猜想……”arXiv公司:1510.07507