mathe 发表于 2022-11-15 21:02:50

由于9#发现得出大部分解中求出两个虚点连线会经过某些已经点,不符合条件,修改代码加以过滤,过滤后结果在
https://github.com/emathgroup/selectedTopics/blob/master/content/attached/files/n8.2.tgz
可以知道余下结果只有四种配置还留有候选解,分别为:
sd8/f484.7.out
      _=4d2-7
      _=k+1/2
      _=c-1/2
      _=b+d
      _=a-3/2
sd8/f4041.7.out
      _=4d-1
      _=k+1/2
      _=c-1/2
      _=b+d
      _=a-3/4
or
      _=4d+1
      _=k+1/2
      _=c-1/2
      _=b+d
      _=a-3/4
sd8/f12577.7.out
      _=c4k2+2c2d2k2+d4k2+c4k+2c2d2k+d4k-2c3k2-2cd2k2-c2k3-d2k3+c4+2c2d2+d4-2c3k-2cd2k-2c2k2-2d2k2+2ck3-2c3-2cd2-c2k-d2k+4ck2+c2+d2+2ck
      _=-2c3dk4-2cd3k4-c2dk5+4bd2k5-d3k5+bk7-4c3dk3-4cd3k3+8bd2k4-4d3k4+2cdk5+2bk6-6c3dk2-6cd3k2+12bd2k3-8d3k3+6cdk4+bk5-dk5-4c3dk-4cd3k+3c2dk2+8bd2k2-9d3k2+10cdk3-dk4-2c3d-2cd3+2c2dk+4bd2k-6d3k+8cdk2+2c2d-2d3+4cdk
      _=2c3dk3+2cd3k3+c2dk4-4bd2k4+d3k4-bk6+4c3dk2+4cd3k2-8bd2k3+4d3k3-2cdk4-2bk5+4c3dk+4cd3k-c2dk2-8bd2k2+7d3k2-6cdk3+dk4+2c3d+2cd3-2c2dk-4bd2k+6d3k-8cdk2+bk3+dk3-c2d+3d3+2bck-4cdk-2bk2-dk2-2cd-2bk+2d
      _=c4dk+2c2d3k+d5k+2bc3k2+2bcd2k2-bc2k3-bd2k3+bc4+2bc2d2+bd4-4c3dk-4cd3k-4bc2k2-c2dk2-d3k2+bk4-2bc3-2bcd2-bc2k+4c2dk-bd2k+2bck2+2cdk2+bk3+bc2+bd2+2bck-bk2-dk2-bk+d
      _=c3k2+cd2k2+c2k3-2bdk3+d2k3+ak4+c3k+cd2k-2bdk2+2d2k2+ak3-2ck3-k4+c3+cd2-2bdk+2d2k-3ck2-k3-c2+d2-2ck
      _=c2dk+d3k+2bck2-bk3+bc2+bd2-2cdk-2bk2-bc+ad-bk+dk
      _=ack-c2k+bdk-d2k-ak2-c2-d2-ak+ck+k2+c+k
      _=c3k+cd2k+c2k2-2bdk2+d2k2+ak3+ac2+ad2-c2k+d2k-2ck2-k3-ac-bd-ak-ck+k
      _=a2k+b2k-c2-d2-2ak+2c+k
      _=a2c+b2c-ac2+c3-ad2+cd2+c2k-2bdk+d2k+ak2-a2-b2+ac-2c2+bd-ak-2ck-k2+c+k+1
sd8/f13487.7.out
      _=k2-k-1
      _=d2+k
      _=c-k-1
      _=b+d
      _=a-k-1
其中最后一种显然没有实数解。倒数第二种估计也没有实数解,实在过于复杂,不准备分析了。前面两种比较合适

增加一种解
sd8/f13492.7.out
      _=16d2-7
      _=k+1/2
      _=c-1/4
      _=b+d
      _=a-1/4
(Singular 用_1=1代表无解),前面过滤代码判断_=1开头就认为无解,错漏了这一种配置。

mathe 发表于 2022-11-15 21:09:47

sd8/f484.7.out中
$d=\frac{\sqrt{7}}{2},c=\frac1 2, a=\frac3 2, b=-\frac{\sqrt{7}}{2},k=-\frac1 2$
对应原始8个点为
, , ,,,, ,
我们需要将$(\frac3 2-i\frac{\sqrt{7}}{2}, \frac1 2+i\frac{\sqrt{7}}{2},1)$映射为$(1,i,0)$
将$(\frac3 2+i\frac{\sqrt{7}}{2}, \frac1 2-i\frac{\sqrt{7}}{2},1)$映射为$(1,-i,0)$
可以找到对应变换阵
[-1,-0.5,0; 0,-1.3228756555322952952508078768196302129,0; 1,1,-2]
对应8个点坐标变换后为
(0,0), (1,0), (0.5, 1.3228756555322952952508078768196302129), (-0.25,0.66143782776614764762540393840981510643)
(2.5,1.3228756555322952952508078768196302129), (-1,0), (-1.5,1.3228756555322952952508078768196302129), (-0.5,-1.3228756555322952952508078768196302129)
得到如下的图:

mathe 发表于 2022-11-16 07:54:42

sd8/f12577.7.out 我原先预计会无解,哪里知道可以找出无穷组解,方程可以有两个自由变量,
比如我们可以选择a=1,b=1,c=3/10,d=-1/10,k=-1/2;
得出坐标变换后9个点坐标为(0,0),(1,0),(1,2),(9/5,12/5),(0,3),(-3,0),(3/2,3/2),(3/5,6/5) 无穷远点

mathe 发表于 2022-11-17 20:22:00

mathe 发表于 2022-11-15 07:59
查找网络,平面上8棵树,每行3棵,最多7行,而且在射影变化下只有一种配置,但是其中有一个自由度(其 ...

8#之11棵树5点圆的分析中,第一步使用带有u,v两个参数的10个点坐标,得出有额外三个五点圆的分组本质只有两组{ 0 3 4 }或{ 0 3 6 },其中编号0,3,4,6的五点圆分别经过点:
0: 1 2 6 9 10
3: 1 3 7 8 9
4: 1 4 5 8 10
6: 2 3 5 7 10
其中判断{0,3,4}是否合法对应的singular代码如下
LIB "primdec.lib";
LIB "solve.lib";

ring r1=(0, I),(a,b,c,d,u,v),dp;
minpoly=I^2+1;
list n1=0,1,0;
list n2=1,0,0;
list n3=1,-1,0;
list n4=u,-v,0;
list n5=0,0,1;
list n6=0,1,1;
list n7=0,v,1;
list n8=1,0,1;
list n9=u,0,1;
list n10=u*(1-v),-v*(1-u),u-v;
list n11=a+b*I, c+d*I,1;
list n12=a-b*I, c-d*I,1;
list allnodes=n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12;

proc inonecv(list nodes, list index)
{
    matrix m;
    int kk;
    list n;
    for(kk=1;kk<=6;kk++){
      n=nodes];
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
    }
    poly p=det(m);
    return (p);
}

proc ptinline(list nodes, list index)
{
    matrix m;
    int kk;
    list n;
    for(kk=1;kk<=3;kk++){
      n=nodes];
      m=n;
      m=n;
      m=n;
    }
    poly p=det(m);
    return (p);
}

list l1 = 1,2,6,9,11,12;
poly f0=inonecv(allnodes,l1)*I;
l1 = 1,2,6,10,11,12;
poly f1=inonecv(allnodes,l1)*I;
l1 = 1,3,7,8,11,12;
poly f2=inonecv(allnodes,l1)*I;
l1 = 1,3,7,9,11,12;
poly f3=inonecv(allnodes,l1)*I;
l1 = 1,4,5,8,11,12;
poly f4=inonecv(allnodes,l1)*I;
l1 = 1,4,5,10,11,12;
poly f5=inonecv(allnodes,l1)*I;
l1 = 2,3,5,7,11,12;
poly f6=inonecv(allnodes,l1)*I;
l1 = 2,3,5,10,11,12;
poly f7=inonecv(allnodes,l1)*I;
l1=1,11,12;
poly g1=ptinline(allnodes,l1)*I;
l1=2,11,12;
poly g2=ptinline(allnodes,l1)*I;
l1=3,11,12;
poly g3=ptinline(allnodes,l1)*I;
l1=4,11,12;
poly g4=ptinline(allnodes,l1)*I;
l1=5,11,12;
poly g5=ptinline(allnodes,l1)*I;
l1=6,11,12;
poly g6=ptinline(allnodes,l1)*I;
l1=7,11,12;
poly g7=ptinline(allnodes,l1)*I;
l1=8,11,12;
poly g8=ptinline(allnodes,l1)*I;
l1=9,11,12;
poly g9=ptinline(allnodes,l1)*I;
l1=10,11,12;
poly g10=ptinline(allnodes,l1)*I;

ideal i=f0,f1,f2,f3,f4,f5;
ring r2 = 0, (a,b,c,d,u,v), dp;
ideal i = fetch(r1,i);
ideal g1=fetch(r1,g1);
ideal g2=fetch(r1,g2);
ideal g3=fetch(r1,g3);
ideal g4=fetch(r1,g4);
ideal g5=fetch(r1,g5);
ideal g6=fetch(r1,g6);
ideal g7=fetch(r1,g7);
ideal g8=fetch(r1,g8);
ideal g9=fetch(r1,g9);
ideal g10=fetch(r1,g10);

ideal si=std(i);
ideal j=u;
ideal k=sat(si,j);
ideal sk=std(k);

j=1-u;
k=sat(sk,j);
sk=std(k);

j=v;
k=sat(sk,j);
sk=std(k);

j=1-v;
k=sat(sk,j);
sk=std(k);

j=g1;
k=sat(sk,j);
sk=std(k);

j=g2;
k=sat(sk,j);
sk=std(k);

j=g3;
k=sat(sk,j);
sk=std(k);

j=g4;
k=sat(sk,j);
sk=std(k);

j=g5;
k=sat(sk,j);
sk=std(k);

j=g6;
k=sat(sk,j);
sk=std(k);

j=g7;
k=sat(sk,j);
sk=std(k);

j=g8;
k=sat(sk,j);
sk=std(k);

j=g9;
k=sat(sk,j);
sk=std(k);

j=g10;
k=sat(sk,j);
sk=std(k);

primdecGTZ(sk);

结果判断没有合法解。类似可以判断{0,3,6}组合也无解。
类似可以判断下面4个参数u,v,w,t的情况中添加额外四个圆点六种方案也都不合法,比如
LIB "primdec.lib";
LIB "solve.lib";

ring r1=(0, I),(a,b,c,d,u,v,w,t),dp;
minpoly=I^2+1;
list n1=0,1,0;
list n2=1,0,0;
list n3=1,-1,0;
list n4=0,0,1;
list n5=0,1,1;
list n6=1,0,0;
list n7=u,0,1;
list n8=0,v,1;
list n9=1,w,0;
list n10=t,1-t,1;
list n11=a+b*I, c+d*I,1;
list n12=a-b*I, c-d*I,1;
list allnodes=n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12;

proc inonecv(list nodes, list index)
{
    matrix m;
    int kk;
    list n;
    for(kk=1;kk<=6;kk++){
      n=nodes];
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
      m=n*n;
    }
    poly p=det(m);
    return (p);
}

proc ptinline(list nodes, list index)
{
    matrix m;
    int kk;
    list n;
    for(kk=1;kk<=3;kk++){
      n=nodes];
      m=n;
      m=n;
      m=n;
    }
    poly p=det(m);
    return (p);
}

list l1 = 1,2,5,7,11,12;
poly f0=inonecv(allnodes,l1)*I;
l1 = 1,2,5,10,11,12;
poly f1=inonecv(allnodes,l1)*I;
l1 = 1,3,6,7,11,12;
poly f2=inonecv(allnodes,l1)*I;
l1 = 1,3,6,8,11,12;
poly f3=inonecv(allnodes,l1)*I;
l1 = 1,4,6,9,11,12;
poly f4=inonecv(allnodes,l1)*I;
l1 = 1,4,6,10,11,12;
poly f5=inonecv(allnodes,l1)*I;
l1 = 2,3,4,8,11,12;
poly f6=inonecv(allnodes,l1)*I;
l1 = 2,3,4,10,11,12;
poly f7=inonecv(allnodes,l1)*I;
l1=1,11,12;
poly g1=ptinline(allnodes,l1)*I;
l1=2,11,12;
poly g2=ptinline(allnodes,l1)*I;
l1=3,11,12;
poly g3=ptinline(allnodes,l1)*I;
l1=4,11,12;
poly g4=ptinline(allnodes,l1)*I;
l1=5,11,12;
poly g5=ptinline(allnodes,l1)*I;
l1=6,11,12;
poly g6=ptinline(allnodes,l1)*I;
l1=7,11,12;
poly g7=ptinline(allnodes,l1)*I;
l1=8,11,12;
poly g8=ptinline(allnodes,l1)*I;
l1=9,11,12;
poly g9=ptinline(allnodes,l1)*I;
l1=10,11,12;
poly g10=ptinline(allnodes,l1)*I;
ideal i=f0,f1,f2,f3,f4,f5;
ring r2 = 0, (a,b,c,d,u,v,w,t), dp;
ideal i = fetch(r1,i);
ideal g1=fetch(r1,g1);
ideal g2=fetch(r1,g2);
ideal g3=fetch(r1,g3);
ideal g4=fetch(r1,g4);
ideal g5=fetch(r1,g5);
ideal g6=fetch(r1,g6);
ideal g7=fetch(r1,g7);
ideal g8=fetch(r1,g8);
ideal g9=fetch(r1,g9);
ideal g10=fetch(r1,g10);

ideal si=std(i);
ideal j=u;
ideal k=sat(si,j);
ideal sk=std(k);

j=1-u;
k=sat(sk,j);
sk=std(k);

j=v;
k=sat(sk,j);
sk=std(k);

j=1-v;
k=sat(sk,j);
sk=std(k);

j=w+1;
k=sat(sk,j);
sk=std(k);

j=t;
k=sat(sk,j);
sk=std(k);

j=t-1;
k=sat(sk,j);
sk=std(k);

j=g1;
k=sat(sk,j);
sk=std(k);

j=g2;
k=sat(sk,j);
sk=std(k);

j=g3;
k=sat(sk,j);
sk=std(k);

j=g4;
k=sat(sk,j);
sk=std(k);

j=g5;
k=sat(sk,j);
sk=std(k);

j=g6;
k=sat(sk,j);
sk=std(k);

j=g7;
k=sat(sk,j);
sk=std(k);

j=g8;
k=sat(sk,j);
sk=std(k);

j=g9;
k=sat(sk,j);
sk=std(k);

j=g10;
k=sat(sk,j);
sk=std(k);

primdecGTZ(sk);

由此证实11棵树最多7个五点圆。

而如果上面第一种只有u,v参数的情况,我们只选择添加两个5点圆,比如0,3,类似可以解得余下方程组:
sk=2au-2av+uv-u
sk=2b2-ac+bd-cv-a+c+v-1
sk=2ab+bc+ad+dv-b-d
sk=2a2+ac-bd+cv-3a-c-v+1
sk=2av2+2cv2-uv2+2cu-2cv-uv-2v2+2v
sk=buv+dv2+du-dv
sk=c2v+d2v+2ac+c2+2bd+d2-2cv-2a-2c+v+1
sk=bcv-adv-bv+dv-d
sk=acv+bdv-av-cv+2a+c+v-1
sk=2bdu-2bdv-cuv-cu-2av+2uv
sk=c2u+d2u+4ac+2c2+4bd+2d2-2cu-2av-2cv+uv-2c+2v
sk=2bcu-2adv+duv+du+2dv-2d
sk=2cuv2-u2v2-2cv3+2cu2-4cuv-u2v+2cv2+2v3+2uv-2v2
sk=4bdv2+4d2v2+u2v2+2cv3+4d2u-2cu2-4d2v+6cuv+u2v-6cv2-2uv2-2v3-4cu+4cv+6v2-4v
sk=4d2uv2+u3v2-4d2v3+u2v3+2cv4+4d2u2-2cu3-8d2uv+4cu2v+u3v+4d2v2-2u2v2-4cv3-2uv3-2v4-2cu2-u2v+2cv2+4uv2+4v3-2uv-2v2
注意Singular里面字母前面数字代表系数,后面数字代表次数。上面方程组有两个自由度。
比如我们再选择c=d=1/3, 得到
      _=25v3-95v2-36v+36
      _=5/2v2+u-17/2v-9
      _=-5/18v2+b+11/9v+1/6
      _=-5/36v2+a+7/36v-1/3

也就是数值解可以选择v=0.47632461572285227543608130424376469084, u=12.481546384785437118405575634051153582, b=-0.68581754712139642299953098829561836771, a=0.27222648299049023659860171595375943733

对应点坐标变换后好象是
(1.2651042763125358432169555139283586806, 2.9304927124987981969697740611338608153)
(4.1955969888113340401867295750622194959,0)
(-1.5061713325111876948650033905853759639, 5.7017683213225217350517329656475954597)
(4.4452965980980473197203431907518874650, -0.24969960928671327953361361568966796906)
(0,0)
(2.3675384277147724563918695756235309161, 5.4841756832896847513845799983160657393)
(56.429119241634458991248792051197641893, 130.71264227509662302625362384640707406)
(100,0)
(4.5444116567977473682517073888540799490,0)
(6.6263282955992854329915791835128865358, 5.2449524632912784804196310649872410376)
但是由于有两个点坐标极大,不适合作图。

mathe 发表于 2022-11-19 11:47:39

12棵树每5棵一个圆的方案中,先将一颗投影到无穷远,余下11棵最多构成6条包含4树的直线,然后计算11棵树能够构成的最多5点圆。
Singular直接计算会异常慢,于是我改用32003阶有限域计算,可以淘汰5个圆的情况。而所有4个圆的情况见
https://github.com/emathgroup/selectedTopics/blob/master/content/attached/files/sd.4.tgz
(总结看cesm2.err)其中有4个文件计算还是很慢,被我终结,另外四个f191.out,f299.out,f322.out,f323.out都有解余下。
然后继续手工分析f299.out/f323.out(结合其它阶素数域,可以猜出f299.out/f323.out的解,结果没有实数解,解得b/d为纯虚数)。看来余下文件有很大可能都没有实数解。

mathe 发表于 2022-11-20 07:53:00

11棵树每个圆4棵树问题oeis中已经给出了30个圆的例子,但是不知道是否有更多的。
解决11棵树每个圆4棵树问题先要找出10棵树每条直线3棵树问题。
由于如果存在31一个以上的圆,那么必然有一棵树至少有12个圆($\frac{11\times11}4<31$).
以这棵树为反演中心做反演,可以做出10棵树每条直线3棵树至少12条直线的解。
而10棵树12条直线已经最多可能的直线数目了,但是解答方案比较多,可以分为13类。
CFG x1;
x1.name="AEFAGHAIJBEGBFIBHJCEHCFJCGIDEJDFGDHI";
x1.ring1="ring r1=(0,t), (a,b,c,d), dp;\n minpoly 1-t-t^2;\n"
"list n1=0,0,1;\n"//A
"list n2=1,-t,1;\n"//B
"list n3=1,-2-t,0;\n"//C
"list n4=1+t,1,1;\n"//D
"list n5=0,1,1;\n"//E
"list n6=0,1,0;\n"//F
"list n7=1+t,-1-t,1;\n"//G
"list n8=t,-t,1;\n"//H
"list n9=1,0,1;\n"//I
"list n10=1,0,0;\n";//J

CFG x2;
x2.name="ABEAFGAHIBFHBIJCDGCEHCFJDEJDFIEGIGHJ";
x2.ring1="ring r1=(0,t),(a,b,c,d),dp;\n minpoly t^3-t^2+1"
"list n1=1,-t,0;\n"//A, H_x=t,H_y=1-t^2
"list n2=0,1,0;\n"//B
"list n3=t+t^2,1-t^2,1;\n"//C
"list n4=1,0,1;\n"//D
"list n5=1,0,0;\n"//E
"list n6=t,1-t,1;\n"//F
"list n7=t-1,1,1;\n"//G
"list n8=t,1-t^2,1;\n"//H
"list n9=0,1,1;\n"//I
"list n10=0,0,1;\n";//J

CFG x3;
x3.name="ABEAFGAHIBFHBGJCDECFICHJDFJDGIEGHEIJ";
x3.ring1="ring r1=0,(a,b,c,d,t),dp;\n"
"list n1=0,0,1;\n"//A, J_X=t,D_X=1+t-t2
"list n2=0,1,1;\n"//B
"list n3=1+t-t2,t2,1;\n"//C
"list n4=1+t-t2,-t,1;\n"//D
"list n5=0,1,0;\n"//E
"list n6=1,0,1;\n"//F
"list n7=1,0,0;\n"//G
"list n8=1,-1,0;\n"//H
"list n9=t,-t,1;\n"//I
"list n10=t,1,1;\n";//J

CFG x4;
x4.name="ABEACFAGHBGIBHJCEICGJDEJDFGDHIEFHFIJ";
x4.ring1="ring 0,(a,b,c,d),dp;\n"
"list n1=1,0,1;\n"//A
"list n2=1,0,0;\n"//B
"list n3=4,6,1;\n"//C
"list n4=0,1,1;\n"//D
"list n5=0,0,1;\n"//E
"list n6=2,2,1;\n"//F
"list n7=4,3,1;\n"//G
"list n8=1,1,0;\n"//H
"list n9=2,3,1;\n"//I
"list n10=0,1,0;\n";//J

CFG x5;
x5.name="ABEACFAGHBFGBIJCEICHJDEHDFJDGIEGJFHI";
x5.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=t3+2t2+3t+1;\n"
"list n1=0,0,1;\n"//A, J_Y=t;I_Y=-t2-t-1
"list n2=0,1,1;\n"//B
"list n3=3-2(-t2-t-1)+t,-1+(-t2-t-1)-t,0;\n"//C
"list n4=1,-t2-t-1,1;\n"//D
"list n5=0,1,0;\n"//E
"list n6=-2+2(-t^2-t-1)-t,1,1;\n"//F
"list n7=1,0,0;\n"//G
"list n8=1,0,1;\n"//H
"list n9=3-2(-t2-t-1)+t,-t2-t-1,1;\n"//I
"list n10=1,t,0;\n";//J

CFG x6;
x6.name="ABEACFAGHBFIBGJCEJCHIDEHDFGDIJEGIFHJ";
x6.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=1+t-t2;\n"
"list n1=0,0,1;\n"//A, I_y=t
"list n2=0,1,1;\n"//B
"list n3=1+t,1+t,1;\n"//C
"list n4=1,-t,1;\n"//D
"list n5=0,1,0;\n"//E
"list n6=-t,-t,1;\n"//F
"list n7=1,0,0;\n"//G
"list n8=1,0,1;\n"//H
"list n9=1,t,0;\n"//I
"list n10=1+t,1,1;\n";//J

CFG x7;
x7.name="ABCAEFAGHBEIBGJCFJCHIDEGDFHDIJEHJFGI";
x7.ring1="ring 0,(a,b,c,d,t),dp;\n"
"list n1=0,1,0;\n"//A, J_X=t, I_Y=-1/t
"list n2=-t,-1,t;\n"//B
"list n3=-1,2+t,1;\n"//C
"list n4=1,0,1;\n"//D
"list n5=1,0,0;\n"//E
"list n6=1,-1,0;\n"//F
"list n7=0,0,1;\n"//G
"list n8=0,1,1;\n"//H
"list n9=1,-1,t;\n"//I
"list n10=t,1,1;\n";//J

CFG x8;
x8.name="ABEACFADGBGHBIJCEICHJDFJDHIEFHEGJFGI";
x8.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=t3-t+1;\n"
"list n1=1,0,0;\n"//A, I_X=t, J_Y=t-t2
"list n2=0,0,1;\n"//B
"list n3=1+t,1-t,1;\n"//C
"list n4=1,t-1,0;\n"//D
"list n5=1,0,1;\n"//E
"list n6=t,1-t,1;\n"//F
"list n7=0,1,0;\n"//G
"list n8=0,1,1;\n"//H
"list n9=t,1-t+t2,1;\n"//I
"list n10=1,t-t2,1;\n";//J

x9.name="ABEACFAGHBCIBGJCHJDEGDFHDIJEFJEHIFGI";
x9.ring1="ring 0,(a,b,c,d),dp;\n "
"list n1=1,0,0;\n"//A, J_Y=t, C_X=(1-4t)/(1-2t)
"list n2=1,0,1;\n"//B
"list n3=(1-4t),2t(1-2t),(1-2t);\n"//C
"list n4=0,1,1;\n"//D
"list n5=0,0,1;\n"//E
"list n6=2,2t,1;\n"//F
"list n7=0,1,0;\n"//G
"list n8=2,2t-1,0;\n"//H
"list n9=2,2t-1,1;\n"//I
"list n10=1,t,1;\n";//J

x10.name="ABEACFAGHBCIBGJCHJDEHDFJDGIEFGEIJFHI";
x10.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=1-t-t2;\n"
"list n1=1,0,0;\n"//A, J_X=t
"list n2=1,0,1;\n"//B
"list n3=t,-t,1;\n"//C
"list n4=0,1,1;\n"//D
"list n5=0,0,1;\n"//E
"list n6=2t,-t,1;\n"//F
"list n7=2,-1,0;\n"//G
"list n8=0,1,0;\n"//H
"list n9=2t,1-t,1;\n"//I
"list n10=2t,1-t,2;\n";//J

x11.name="ABEACFAGHBDIBGJCEHCIJDFGDHJEFJEGIFHI";
x11.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=1-2t+2t2-2t3;\n"
"list n1=1,-t,0;\n"//A, I_X=t, H_Y=2t-2t2
"list n2=0,1,0;\n"//B
"list n3=2t-1,2t-2t2,1;\n"//C
"list n4=t,1-t,1;\n"//D
"list n5=1,0,0;\n"//E
"list n6=1,0,1;\n"//F
"list n7=0,1,1;\n"//G
"list n8=2t-(2t-2t2),2t-2t2,1;\n"//H
"list n9=t,1,1;\n"//I
"list n10=0,0,1;\n";//J

x12.name="ABEACFAGHBDIBGJCEJCHIDFGDHJEFHEGIFIJ";
x12.ring1="ring (0,t),(a,b,c,d),dp;\n minpoly=1+4t-4t2;\n"
"list n1=0,0,1;\n"//A, J_Y=t
"list n2=0,1,1;\n"//B
"list n3=1,0,1;\n"//C
"list n4=4,2t-1,2;\n"//D
"list n5=0,1,0;\n"//E
"list n6=1,0,0;\n"//F
"list n7=2-4t,2t-1,2;\n"//G
"list n8=2,-1,0;\n"//H
"list n9=1-2t,t,1;\n"//I
"list n10=1,t,1;\n";//J

x13.name="ADEAFGBCHBDIBEJCFICGJDFJDGHEFHEGIHIJ";
x13.ring1="0,(a,b,c,d,t),dp;\n"
"list n1=0,0,1;\n" //A, J_Y=t, C_X=1-t+t2
"list n2=t,1-t+t2,1;\n"//B
"list n3=1-t+t2,t,1;\n"//C
"list n4=0,1,0;\n"//D
"list n5=0,1,1;\n"//E
"list n6=1,0,1;\n"//F
"list n7=1,0,0;\n"//G
"list n8=1,-1,0;\n"//H
"list n9=t,1,1;\n"//I
"list n10=1,t,1;\n";//J




mathe 发表于 2022-11-20 18:39:30

楼上分析表明,如果11棵树有31个或以上四点圆,那么所有点经过圆的数目累加不小于31×4=124.
而如果每棵树经过的圆都最多只有11棵,那么所有点经过圆点数目累加不超过11×11=121.由于每个点经过的圆最多12,
所以至少有不少于3个点经过的圆点数目为12.
我们可以先将楼上10棵树12条3棵树直线的方案两两组合并且组合时任意重排点,然后看是否存在合法的方案。
现在搜索在正进行中,估计需要计算一天左右的时间,部分结果如下:

大部分还是非法解,比如f4628.out里面是
succ
si=2*c+(5t+7)
si=5*b+(-t+2)*d
si=2*a+(-2t-3)
si=4*d2+(33t+54)
其中这部分解都对应第一棵树的参数t满足,在文件f4628里面可以找到:
ring r1=(0, t), (a,b,c,d), dp;
minpoly = 1-t-t^2;
计算可以知道对于t的两个不同取值,都有33t+54>0,对应d没有实数解(上面Singular表达式中4*d2代表$4d^2$).
我们后面需要将所有非实数解先全部淘汰。

而比如f109005中有
ring r1=(0, t), (a,b,c,d), dp;
minpoly = t^3-t^2+1;
list n1=1,-t,0;
list n2=0,1,0;
list n3=t+t^2,1-t^2,1;
list n4=1,0,1;
list n5=1,0,0;
list n6=t,1-t,1;
list n7=t-1,1,1;
list n8=t,1-t^2,1;
list n9=0,1,1;
list n10=0,0,1;
f109005.out中有
si=2*c+(-t2+t-2)
si=b+d
si=2*a+(-t2+t-2)
si=4*d2+(-t-3)
对应t=-0.75487766624669276004950889635852869189,d=0.74918661456163697932287580846141719679,b=-0.74918661456163697932287580846141719679,
a=c=1.6623589786223730129804544272390486704
得到变换阵:
[-1.0000000000000000000000000000000000000 0.66235897862237301298045442723904867038 0]


变换后各点坐标为:
A(-0.66235897862237301298045442723904867038, -0.74918661456163697932287580846141719681)
B(1.5397978117457193930052088754183130164, -1.7416475761988356157641949125821765751)
C(-0.35476043649707989886709993717935297327, 0.24327434707556165711844329565934218146)
D(1,0)
E(-2.3247179572447460259609088544780973408, 0)
F(-1.9172366448690657730299633235975773623, 1.3147308577451860291517763781613870934)
G(-1.3774388331233463800247544481792643460, 0.42691671845364958661241853442078948165)
H(-0.66235897862237301298045442723904867038, 0.20528833280428718115116797580395560534)
I(-0.66235897862237301298045442723904867038, 0.74918661456163697932287580846141719678)
J(0,0)
计算结果会有12个圆,加上前面12条直线是一个24个圆点结果:
A B D J
A C E I
A C H J
A E F J
A G I J
B D E I
B E H J
C D I J
C E G J
C F G H
D F H J
E F H I

mathe 发表于 2022-11-21 05:56:38

上面附件中文件运行完了,有3731个候选解。
其中文件f482153好像找到32个圆了,待确认
a=1.3964466094067262377995778189475754804
b=0.22346558365094650006517175339790281976
c=-0.42677669529663688110021109052621225982
d=0.15801402956139395868317375793189193654
t=-0.20710678118654752440084436210484903928 (1+4t-4t^2=0)

[-1.0000000000000000000000000000000000000 -2.7071067811865475244008443621048490394                                        0]
[                                  0      -1.5259184528493618349933820453191790253                                        0]


A=(0,0)
B=(0.79289321881345247559915563789515096077, 0.44693116730189300013034350679580563955)
C=(1,0)
D=(-0.085786437626904951198311275790301921349, 1.0789872855474688348630385385233733858)
E=(1.9142135623730950488016887242096980788, 1.0789872855474688348630385385233733858)
F=(-1,0)
G=(1.2071067811865475244008443621048490398, 2.6049057383968306698564205838425524115)
H=(0.20710678118654752440084436210484903933, 0.44693116730189300013034350679580563956)
I=(2.9142135623730950488016887242096980781, -1.0789872855474688348630385385233733856)
J=(0.62132034355964257320253308631454711782, -0.44693116730189300013034350679580563952)
作图以后发现存在五点共圆情况,被计算成5个四点圆了。看来需要更多代码来后处理。

mathe 发表于 2022-11-22 08:39:57

上一次运行中其中13中配置中的一种参数t的过滤条件(t!=0,t!=1/2),结果产生了大量这种解(不同的点位置重叠),这导致继续寻找三个点都有12个圆经过时还有很多很多解。
添加这个过滤条件后,两个点有12个圆经过的可能解已经只有277种了(github中文件已经更新)。然后基于这277中方案继续寻找3个点有12个圆经过的解,结果没有找到。所以这验证了11棵树最多30个四点圆。
另外文件sdr2.out给出了部分统计信息,比如里面含freedom 2的行代表对应的配置的方程还有两个自由度。
而另外一个文件后面跟两个数字,第一个数字代表额外四点共圆做多数目(不包含12条直线),后面数字是扣除5点共圆后的数目。
可以看出没有额外自由度的那些选项都无法超过30个圆,甚至无法达到30圆。

而包含额外自由度的情况余下不多,比如f516489含有两个额外自由度,可以查看文件sdo/f516489.out, sdf/f516489.out获取额外信息。
可以看到里面也有18个已经验证过的四点共圆(不会减少自由度),并且给出了所有四点共圆组合. 解里面方程得到

b^2=((-4*a^3 + 20*a^2 - 32*a + 16)*t^2 + (2*a^3 - 10*a^2 + 16*a - 8)*t + (a^2 - 2*a + 1))/((4*a - 4)*t^2 + (-2*a + 2)*t - 1)
c=t,d=(2*b*c^2 - 2*b*c)/-((2*a - 4)*c + 1)
所以我们需要选择适当的a,t使得b^2>0即可。
比如a=1/2,t=1/4,然后计算出其它参数。
查找文件f516489可以得到10个点的坐标(另外一个点为无穷远点)。
然后计算射影变换使得(a+bi,c+di)映射到(1,i,0),共轭点映射到(1,-i,0).可以得到变换后坐标
A=(0.66666666666666666666666666666666666667, 0)
B=(1,0)
C=(0.62500000000000000000000000000000000001, -0.33071891388307382381270196920490755321)
D=(0.83333333333333333333333333333333333334, -0.44095855184409843175026929227321007095)
E=(0,0)
F=(0.68750000000000000000000000000000000000, 0.16535945694153691190635098460245377661)
G=(1.2500000000000000000000000000000000000, -0.66143782776614764762540393840981510642)
H=(0.75000000000000000000000000000000000000, -0.094491118252306806803629134058545015204)
I=(0.87500000000000000000000000000000000000, -0.11023963796102460793756732306830251774)
J=(0.91666666666666666666666666666666666666, 0.22047927592204921587513464613660503548)
画图后发现有两个缺陷(一个是存在四点共线,对应反演后有五点共圆),另外是找出的18个四点共圆中存在五点共圆,所以实际圆点数目要减少

mathe 发表于 2022-11-22 13:56:49

发现上面的值取得太特殊了,导致四点共线和五点共圆,修改参数为:
a=1/3, t=0.22,b=0.11908559882815065066807104006502303474,c=0.22,
d=0.15326316569182988740980742856368464572
得到变换阵:
S=[-1 1.2739641311069882498453927025355596784 0]

[-1.1938775510204081632653061224489795919 0.92764378478664192949907235621521335802 0.19387755102040816326530612244897959185]
点坐标,
11点30圆图:
页: 1 [2] 3 4 5 6
查看完整版本: 最多五点圆数目