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

用户:Peter Luschny/PerfectRulers

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

完美和最佳的规则

关键词:标尺,完整的标尺,完美的统治者,最佳的统治者,维希曼的统治者,完美的维希曼统治者,成分。

与序列有关:

A004137号,A103299号,A103301号,A103300型,A103295号,A103296号,A103294号,A103297号,A103298号,1993年2月,A193803号.

完美PrimeRuler.png

介绍

我们可以在文具店买到的尺子,边缘有一系列规则的标记,看起来有点像这样'_'_'_'_'_'_'.

相当枯燥。然而,最近统治者的制造商发现,他们可以通过删除一些标尺上的标记不会降低其功能。比如用尺子'_'___'__'您还可以使用标准等长的尺子。

如果我们想测量某个长度以内的所有距离,可以删除多少个标记?本质上是这个问题我们在这里要研究的,是一个有趣的组合学对象中的单调规则。

首先,我们要确保我们能够测量出所有长度等于或小于标尺长度的长度。很明显,这个是一个必要条件作为一个理性的统治者。具有此功能的标尺将被称为完成尺子,因为它够了完成这项基本任务。此处不考虑不能使用的标尺(不完整的标尺)。

接下来,我们关注那些标记尽可能少的完整标尺。他们会被叫来很 完美统治者。它们是完整的但删除单个标记会使其不完整。有一种与完美相关的审美印象统治者:他们以最低的复杂性完成任务。

有趣的是,具有相同标记数的完美标尺在实用性方面仍然存在差异。让我们考虑以下三点完美的统治者。他们都有4分。(数字对应于标尺上标记的位置。)

[0, 1, 3, 4],   [0, 1, 3, 5],   [0, 1, 4, 6]

但与第一个相比,第三个可以测量出更多33%的长度。所以如果你想买一把这样的尺子。

但第三把尺子的决定性之处在于,不存在任何其他有4个标记的尺子,它是完整的,可以测量更多长度。因此,标记涵盖了最大的测量范围。具有此质量的标尺称为最优的统治者。最佳标尺从而将复杂性最小的美学与实用性最大的美学结合起来。

具有这种特征的尺子是相当罕见的生物。例如,有52012把带有14个标记的完美尺子,但其中只有4把是最佳标尺。列举完整、完美和最佳的统治者将是我们的主要任务之一。

每一个标记的最佳标尺都有一个非常特殊的长度。事实上,它们的长度取决于标记数量,

0, 1, 3, 6, 9, 13, 17, 23, ...

但这些数字也计算了n个节点上优美图的最大边数图论、组合学和加法数论中完美规则的研究。

显然,我们想知道如何构建这样的最优统治者。乍一看,这似乎不是一项容易的任务,但确实存在这是一个令人兴奋的、尚未被证实的猜想,即有一个最佳统治者的蓝图,这将允许一个非常简单的结构。它说,只有当它是一个威克曼统治者时,一个分数超过14分的统治者才是最佳的,威克曼是以B.威克曼的名字命名的,他介绍了1962年关于限制差分基的注记.

简而言之的标尺

标尺是严格递增的有限标记序列,它被理解为非负数。按照惯例,第一个标记设置为0。

标尺根据其长度L和段数S进行计数(段是指两个相邻标记)。带有M标记的标尺具有S=M-1段。

标尺是:

  • 完成,如果1≤d≤L的所有距离d都可以用直尺测量。
     
  • 很 完美如果没有长度相同、标记较少的完整尺子。
     
  • 最优的如果没有长度更大、标记数量相同的完美尺子。

SAGE工作表

标尺

定义部分总和(T):return[add([T[j]for j in range(i)])for i in(0..len(T))]

给定列表T,函数partsum返回T的部分和列表。例如[0,1,3,6,10,15]上的[1,2,3,4,5]映射(三角数A000217号). 请注意,由于第一个和是空和,所以“0”是在前面加的。

部分金额([1,2,3,4,5])
[0, 1, 3, 6, 10, 15]

回想一下,正整数n的合成定义为一系列正整数的总和为n。如果我们将部分总和应用于合成,就会得到新的对象。在n=4的情况下,这显示在下面的图中。

成分到规则.png

这就是我们需要给出的基本定义:A尺子是整数组合的部分和的列表。

定义标尺(L,S):返回图(Partsum,成分(L,长度=S))
标尺(6,3)
[[0, 4, 5, 6],[0, 3, 5, 6],[0, 3, 4, 6],[0, 2, 5, 6],[0, 2, 4, 6],[0, 2, 3, 6],[0, 1, 5, 6],[0, 1, 4, 6],[0, 1, 3, 6],[0, 1, 2, 6]]

让我们澄清一下术语:尺子的一个成员称为标记,尺子L的长度是最后一个标记和第一个标记之间的差值;所以最后一个例子中的所有标尺长度都是6。分类的第二个重要数量是S段的数量。A段是两个标记之间的间距。因此,标尺[0,2,5,6]的长度为6和3段。标记数为M=S+1。

我们用R(L,S)表示长度为L和S段的所有标尺的集合,其中L≥0,S≥0。这个空标尺是[],并且琐碎的统治者[0,1,2,…,n]的特征是L=S。

完成标尺

尺子是完成如果1和标尺长度之间的所有距离都可以测量。

定义完成(R):S=设置([])L=长度(R)-1对于范围(L,0,-1)中的i:对于(1..i)中的j:S=S.union(集合([R[i]-R[i-j]])返回长度(S)==R[L]
定义CompleteRuler(L,S):返回筛选器(isComplete,Ruler(L,S))

我们举了一些例子。

列表(CompleteRuler(6,3))
[[0, 2, 5, 6], [0, 1, 4, 6]]
对于(0..5)中的i:对于CompleteRuler(5,i)中的c:打印c
[0, 3, 4, 5][0, 2, 4, 5][0, 1, 3, 5][0, 1, 2, 5][0, 2, 3, 4, 5][0, 1, 3, 4, 5][0, 1, 2, 4, 5][0, 1, 2, 3, 5][0, 1, 2, 3, 4, 5]

如果我们把所有长度相同的完整标尺L放在一个袋子里,我们就得到了CompleteRulers(L)。

定义CompleteRules(L):返回和([CompleteRuler(L,i)for i in(0..L)],[])
完整规则(5)
[[0, 3, 4, 5], [0, 2, 4, 5], [0, 1, 3, 5], [0, 1, 2, 5], [0, 2, 3, 4, 5], [0, 1, 3, 4, 5], [0, 1, 2, 4, 5],[0, 1, 2, 3, 5], [0, 1, 2, 3, 4, 5]]

计算完整标尺:

对于(0..11)中的n:[len(CompleteRuler(n,k))for k in(0..n)]
[1][0, 1][0, 0, 1][0, 0, 2, 1][0, 0, 0, 3, 1][0, 0, 0, 4, 4, 1][0, 0, 0, 2, 9, 5, 1][0, 0, 0, 0, 12, 14, 6, 1][0, 0, 0, 0, 8, 27, 20, 7, 1][0, 0, 0, 0, 4, 40, 48, 27, 8, 1][0, 0, 0, 0, 0, 38, 90, 75, 35, 9, 1][0, 0, 0, 0, 0, 30, 134, 166, 110, 44, 10, 1]

完整标尺(L,S)

路易斯安那州 0 1 2 4 5 6 7 8 9 10 11 总和
0 1                       1
1 0 1                     1
2 0 0 1                   1
0 0 2 1                
4 0 0 0 1               4
5 0 0 0 4 4 1             9
6 0 0 0 2 9 5 1           17
7 0 0 0 0 12 14 6 1         33
8 0 0 0 0 8 27 20 7 1       63
9 0 0 0 0 4 40 48 27 8 1     128
10 0 0 0 0 0 38 90 75 35 9 1   248
11 0 0 0 0 0 30 134 166 110 44 10 1 495

这是顺序A103294号在三角形中,标尺的长度从上到下增加并且分段数从左到右增加,主对角线上方的条目为0。长度为n的完整标尺的数量是行和A103295号.最重要的序列是零项右侧的不规则对角线:长度为n的完美标尺的数量A103300型.

完美的标尺

标尺r是完美的尺子如果它是完整的,并且没有相同长度的完整的尺子具有更少的标记。

def PerfectRulers(L):对于(0..L)中的i:R=完整标尺(L,i)如果len(R)>0:返回R返回[]
完美标尺(5)
[[0, 3, 4, 5], [0, 2, 4, 5], [0, 1, 3, 5], [0, 1, 2, 5]]
对于(0..6)中的i:[PerfectRulers(i)中的c代表c]
[[0]][[0, 1]][[0, 1, 2]][[0, 2, 3], [0, 1, 3]][[0, 2, 3, 4], [0, 1, 3, 4], [0, 1, 2, 4]][[0, 3, 4, 5], [0, 2, 4, 5], [0, 1, 3, 5], [0, 1, 2, 5]][[0, 2, 5, 6], [0, 1, 4, 6]]

len(x)的一个更合适的名称是基数(x)。

len(完美标尺(10))
38
len(CompleteRulers(10))
248

统治者的代表

首先,我们看一个符号表示法,它捕捉了统治者的直观含义。

定义Ruler_AsRuler(R):l=0S=“”对于范围(0,len(R))中的i:而l<R[i]-i:S=S+‘-’;l=l+1S=S+'|';返回S
标尺_作为标尺([0,1,4,10,16,18,21,23])
'||--|-----|-----|-|--|-|'

如果我们用零和一代替符号,我们可能会让CS部门的人加入。

定义Ruler_AsBinaryString(R):l=0S=“”对于范围(0,len(R))中的i:而l<R[i]-i:S=S+'0';l=l+1S=S+'1';返回S
对于PerfectRulers(5)中的c:打印Ruler_AsBinaryString(c)
100111101011110101111001
Ruler_AsBinaryString([0,2,5,6])
'1010011'
箱子(83)
“0b1010011”
定义标尺_积分(R):return int(Ruler_AsBinaryString(R),2)
标尺_整数([0,2,5,6])
83

最后,我们看一下标尺的差异表示。

定义差异代表(R):L=[]对于(1..len(R)-1)中的i:L追加(R[i]-R[i-1])返回L
DiffRep([0,4,5,9])
[4, 1, 4]
部分总和([4,1,4])
[0, 4, 5, 9]

很明显,标尺的差异表示不过是我们在尺子定义中提到的构图。

定义成分(R):返回DiffRep(R)

排序标尺

对于(0..5)中的i:排序([CompleteRulers(i)中c的Ruler_AsIntegrer(c)])
[1][3][7][11, 13, 15][23, 27, 29, 31][39, 43, 47, 53, 55, 57, 59, 61, 63]
对于(0..7)中的i:排序([Ruler_AsInteger(c)for c in PerfectRulers(i)])
[1][3][7][11, 13][23, 27, 29][39, 43, 53, 57][83, 101][143, 151, 167, 171, 179, 203, 205, 211, 213, 229, 233, 241]
SPR=排序后的(总和([Ruler_AsIntegrer(c)for c in PerfectRulers(i)](0..7),[])中的i)SPR公司
[1, 3, 7, 11, 13, 23, 27, 29, 39, 43, 53, 57, 83, 101, 143,151, 167, 171, 179, 203, 205, 211, 213, 229, 233, 241]

如果我们谈到自然秩序对于统治者,我们指的是这个过程给出的顺序。

下面的输出将完美的标尺显示为按自然顺序排列的二进制字符串。

对于SPR中的c:打印箱(c).lstrip(“0b”)
1111111011110110111110111110110011110101111010111100110100111100101

让我们快速看一下这个序列中等长标尺的汉明距离。

def Hamming距离(s,t):断言长度==长度(t)返回和(a!=a的b,zip(s,t)中的b)
T=已排序([Ruler_AsIntegrer(c)for c in PerfectRulers(12)])b=“0000000000000”L=[]对于T中的c:a=箱子(c).lstrip(“0b”)L.append(汉明距离(a,b))b=aL(左)
[6, 4, 6, 2, 2, 6, 4, 6, 6, 2, 6, 2, 6, 4]

最佳标尺

尺子是最优的如果它是完美的,并且没有一个完美的标尺具有相同的线段数,那么它的长度会更大。

矩阵CompleteRuler(L,S)的每一行和每一列只有有限多个不同于0的条目。此外,如果S≤L并且CompleteRuler(L,S)=0,则对于所有L≤K,CompleteRuler(K,S)=0,并且对于所有N≤S,CompleteRuler(L,N)=0。

因此,我们对非空标尺R进行了表征:

R是完美的iff
R表示CompleteRuler(L,S),CompleteRuler(L、S-1)=0;

R是最优的iff
R位于CompleteRuler(L,S)中,CompleteRuler(L+1,S)=0。

下面的列表只显示一对[r,reverse(r)]中的一个,即不考虑镜对称标尺。

OptimalRulers=[[0],[0, 1],[0, 1, 3],[0, 1, 4, 6],[0, 1, 4, 7, 9],[0, 1, 2, 6, 9],[0, 1, 6, 9, 11, 13],[0, 1, 4, 5, 11, 13],[0, 1, 2, 6, 10, 13],[0, 1, 8, 11, 13, 15, 17],[0, 1, 4, 10, 12, 15, 17],[0, 1, 2,  8, 12, 15, 17],[0, 1, 2,  8, 12, 14, 17],[0, 1, 2,  6, 10, 14, 17],[0, 1, 2,  3,  8, 13, 17],[0, 1, 4, 10, 16, 18, 21, 23],[0, 1, 2, 11, 15, 18, 21, 23],[0, 1, 4, 10, 16, 22, 24, 27, 29],[0, 1, 3,  6, 13, 20, 24, 28, 29],[0, 1, 2, 14, 18, 21, 24, 27, 29],[0, 1, 3, 6, 13, 20, 27, 31, 35, 36],[0, 1, 3, 6, 13, 20, 27, 34, 38, 42, 43],[0, 1, 3, 6, 13, 20, 27, 34, 41, 45, 49, 50],[0, 1, 2, 3, 23, 28, 32, 36, 40, 44, 47, 50],[0, 1, 5, 8, 12, 21, 30, 39, 48, 53, 54, 56, 58],[0, 1, 3, 6, 17, 24, 27, 38, 45, 49, 53, 57, 58],[0, 1, 3, 6, 17, 20, 27, 35, 45, 49, 53, 57, 58],[0, 1, 2, 8, 15, 16, 26, 36, 46, 49, 53, 55, 58],[0, 1, 2, 6,  8, 17, 26, 35, 44, 47, 54, 57, 58],[0, 1, 2, 3, 27, 32, 36, 40, 44, 48, 52, 55, 58],[0, 1, 2, 8, 15, 16, 26, 36, 46, 56, 59, 63, 65, 68],[0, 1, 2, 5, 10, 15, 26, 37, 48, 54, 60, 66, 67, 68],[0, 1, 2, 5, 10, 15, 26, 37, 48, 59, 65, 71, 77, 78, 79],[0, 1, 2, 5, 10, 15, 26, 37, 48, 59, 70, 76, 82, 88, 89, 90],[0, 1, 2, 5, 10, 15, 26, 37, 48, 59, 70, 81, 87, 93, 99, 100, 101]]

[0123]中有155050个长度为155050的完美标尺,但在此范围内只有74个最佳标尺。

最佳统治者是我们设置中最有趣的生物。不幸的是,这些统治者的蓝图不得而知。因此,我们转向Wichmann标尺,它可以提供一种易于计算的最佳标尺替代品。然而,为了方便起见,我们提供了一个函数,该函数根据已知数据为一些小参数返回最优标尺。

OR=[[0,0],[1,1],[3,2],[6,3],[9,4],[13,5],[17,6],[23,7],[29,8],[36,9]]定义OptimalRulers(S):断言((0..9)中的S)return CompleteRuler(OR[S][0],OR[S][1])
对于(0..6)中的i:对于OptimalRulers(i)中的c:打印Ruler_AsBinaryString(c)
11110111101101001111001011001000111101001001111001001011110001001100100010001111010000011001110101001000011110000100101011100110000010111100010001001100010000100001111100100010001000111100101000100000111101001000100000111101001010000010011101010100100000011110000001001010101110010000010100101111000001000100101111000001000101001111000100010001001111100001000010001

威克曼统治者

B.威克曼。关于有限差分基的注记。
J.伦敦数学。Soc.381962465-466

让我们先看两个例子。

R=[0、1、2、8、15、16、26、36、46、56、59、63、65、68]成分(R)
[1, 1, 6, 7, 1, 10, 10, 10, 10, 3, 4, 2, 3]
S=[0、1、2、5、10、15、26、37、48、54、60、66、67、68]成分(S)
[1, 1, 3, 5, 5, 11, 11, 11, 6, 6, 6, 1, 1]

标尺R和S都是最优的。然而,第二个有一个特殊的结构,可以从他的相关作品中读到。为了看到这一点,让我们看看S的组成类型。

类型(R)=[1*2,6*1,7*1,1*1,10*4,3*1,4*1,2*1,3*1]
类型(S)=[1*2,3*1,5*2,11*3,6*3,1*2]

符号符号“p*m”表示“p连续出现m次”p’表示部分,m’表示多重性。

定义。标尺的类型是其相关组成的类型。

定义。如果标尺的类型具有形式,则标尺为Wichmann类型,对于r≥0,s≥0,

W(r,s)=[1*r,r+1,(2r+1)*r,(4r+3)*s,(2r+2)*(r+1),1*r]

我们看到第二个标尺是Wichmann类型的:类型(S)=W(2,3)。

如果标尺R为Wichmann型,则R的段数为
S=4r+S+2,R的长度为L=4r(R+S=2)+3(S+1)。 

def展平(I):“”“与标尺无关的实用程序”“”L=[]对于i中的i:如果hasattr(i,“iter_”):L.extend(展平(i))其他:L.附录(i)返回L定义Wichmann(r,s):C=[[1]*r,r+1,[2*r+1]*r,[4*r+3]*s,[2*r+2]*(r+1),[1]*r]return Partsum(展平(C))
威克曼(2,3)
[0, 1, 2, 5, 10, 15, 26, 37, 48, 54, 60, 66, 67, 68]

或作为二进制字符串:

标尺_作为二进制字符串(Wichmann(2,3))
'111001000010000100000000001000000000010000000000100000100000100000111'

由于1s是标尺的标记,标记的数量为M=S+1,因此类型(r,S)的Wichmann标尺的二进制字符串表示正好包含4r+S+3乘以1。

最优标尺猜想

并非每一个最佳统治者都是威克曼类型的统治者。在最后一节中,我们看到了这样一个标尺的示例。

然而,有人猜测:

所有超过13段的最优标尺都是Wichmann标尺或Wichmann-标尺的镜像。

如果猜测比序列正确A004137号继续168、183、198、213、232、251、270、289、308、327,。。。

一个更谨慎的猜测是:在具有S段的最优标尺集合中,其中S>12至少存在一个Wichmann类型的统治者。

鉴于目前的证据基础很小,这一推测最好被视为对研究的挑战。无论如何,这是一个有趣的观察结果,研究最优统治者和威克曼统治者之间的关系似乎是一项值得努力的工作。

还应注意的是,具有不同Wichmann类型的标尺可以归入如下示例所示的同一类最佳标尺。

打印Wichmann(2,8)打印Wichmann(3,4)
[0,1,2,5,10,15,26,37,48,59,70,81,92,103,109,115,121,122,123][0,1,2,3, 7,14,21,28,43,58,73,88,96,104,112,120,121,122,123]

另请参见序列A193802号A193803号.

计数标尺

注意,我们使用段数S而不是标记数M作为主要id在这里.

分段-
文件
长度 完美的
最优的
总和
0 0 1 1
1 1 1 1
2 2 1
2
4 9
5 4
6 2
4 7 12 24
8 8
9 4
5 10 38 88
11 30
12 14
13 6
组织环境信息系统 A103297号
A004137号
103300澳元
A103299号
A103301号

现在的挑战是:

  • 扩展此表!
  • 快速生成完美的标尺!
  • (Dis-)证明了最优标尺猜想。

您可以在这里下载Sage工作表.