找回密码
 欢迎注册
楼主: mathe

[讨论] 最多五点圆数目

[复制链接]
 楼主| 发表于 2022-11-15 21:02:50 | 显示全部楼层
由于9#发现得出大部分解中求出两个虚点连线会经过某些已经点,不符合条件,修改代码加以过滤,过滤后结果在
https://github.com/emathgroup/se ... ched/files/n8.2.tgz
可以知道余下结果只有四种配置还留有候选解,分别为:
sd8/f484.7.out
      _[1]=4d2-7
      _[2]=k+1/2
      _[3]=c-1/2
      _[4]=b+d
      _[5]=a-3/2
sd8/f4041.7.out
      _[1]=4d-1
      _[2]=k+1/2
      _[3]=c-1/2
      _[4]=b+d
      _[5]=a-3/4
or
      _[1]=4d+1
      _[2]=k+1/2
      _[3]=c-1/2
      _[4]=b+d
      _[5]=a-3/4
sd8/f12577.7.out
      _[1]=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
      _[2]=-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
      _[3]=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
      _[4]=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
      _[5]=c3k2+cd2k2+c2k3-2bdk3+d2k3+ak4+c3k+cd2k-2bdk2+2d2k2+ak3-2ck3-k4+c3+cd2-2bdk+2d2k-3ck2-k3-c2+d2-2ck
      _[6]=c2dk+d3k+2bck2-bk3+bc2+bd2-2cdk-2bk2-bc+ad-bk+dk
      _[7]=ack-c2k+bdk-d2k-ak2-c2-d2-ak+ck+k2+c+k
      _[8]=c3k+cd2k+c2k2-2bdk2+d2k2+ak3+ac2+ad2-c2k+d2k-2ck2-k3-ac-bd-ak-ck+k
      _[9]=a2k+b2k-c2-d2-2ak+2c+k
      _[10]=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
      _[1]=k2-k-1
      _[2]=d2+k
      _[3]=c-k-1
      _[4]=b+d
      _[5]=a-k-1
其中最后一种显然没有实数解。倒数第二种估计也没有实数解,实在过于复杂,不准备分析了。前面两种比较合适

增加一种解
sd8/f13492.7.out
      _[1]=16d2-7
      _[2]=k+1/2
      _[3]=c-1/4
      _[4]=b+d
      _[5]=a-1/4
(Singular 用_1[1]=1代表无解),前面过滤代码判断_[1]=1开头就认为无解,错漏了这一种配置。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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个点为
[0,0,1], [1,0,1], [0,1,1],[1/2,-1/2,-1/2],[1,1/2,1],[1,0,0], [1,-1/2,0], [0,1,0]
我们需要将$(\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)
得到如下的图:
c8.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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) 无穷远点
c8.2.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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代码如下
  1. LIB "primdec.lib";
  2. LIB "solve.lib";

  3. ring r1=(0, I),(a,b,c,d,u,v),dp;
  4. minpoly=I^2+1;
  5. list n1=0,1,0;
  6. list n2=1,0,0;
  7. list n3=1,-1,0;
  8. list n4=u,-v,0;
  9. list n5=0,0,1;
  10. list n6=0,1,1;
  11. list n7=0,v,1;
  12. list n8=1,0,1;
  13. list n9=u,0,1;
  14. list n10=u*(1-v),-v*(1-u),u-v;
  15. list n11=a+b*I, c+d*I,1;
  16. list n12=a-b*I, c-d*I,1;
  17. list allnodes=n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12;

  18. proc inonecv(list nodes, list index)
  19. {
  20.     matrix m[6][6];
  21.     int kk;
  22.     list n;
  23.     for(kk=1;kk<=6;kk++){
  24.         n=nodes[index[kk]];
  25.         m[kk,1]=n[1]*n[1];
  26.         m[kk,2]=n[1]*n[2];
  27.         m[kk,3]=n[1]*n[3];
  28.         m[kk,4]=n[2]*n[2];
  29.         m[kk,5]=n[2]*n[3];
  30.         m[kk,6]=n[3]*n[3];
  31.     }
  32.     poly p=det(m);
  33.     return (p);
  34. }

  35. proc ptinline(list nodes, list index)
  36. {
  37.     matrix m[3][3];
  38.     int kk;
  39.     list n;
  40.     for(kk=1;kk<=3;kk++){
  41.         n=nodes[index[kk]];
  42.         m[kk,1]=n[1];
  43.         m[kk,2]=n[2];
  44.         m[kk,3]=n[3];
  45.     }
  46.     poly p=det(m);
  47.     return (p);
  48. }

  49. list l1 = 1,2,6,9,11,12;
  50. poly f0=inonecv(allnodes,l1)*I;
  51. l1 = 1,2,6,10,11,12;
  52. poly f1=inonecv(allnodes,l1)*I;
  53. l1 = 1,3,7,8,11,12;
  54. poly f2=inonecv(allnodes,l1)*I;
  55. l1 = 1,3,7,9,11,12;
  56. poly f3=inonecv(allnodes,l1)*I;
  57. l1 = 1,4,5,8,11,12;
  58. poly f4=inonecv(allnodes,l1)*I;
  59. l1 = 1,4,5,10,11,12;
  60. poly f5=inonecv(allnodes,l1)*I;
  61. l1 = 2,3,5,7,11,12;
  62. poly f6=inonecv(allnodes,l1)*I;
  63. l1 = 2,3,5,10,11,12;
  64. poly f7=inonecv(allnodes,l1)*I;
  65. l1=1,11,12;
  66. poly g1=ptinline(allnodes,l1)*I;
  67. l1=2,11,12;
  68. poly g2=ptinline(allnodes,l1)*I;
  69. l1=3,11,12;
  70. poly g3=ptinline(allnodes,l1)*I;
  71. l1=4,11,12;
  72. poly g4=ptinline(allnodes,l1)*I;
  73. l1=5,11,12;
  74. poly g5=ptinline(allnodes,l1)*I;
  75. l1=6,11,12;
  76. poly g6=ptinline(allnodes,l1)*I;
  77. l1=7,11,12;
  78. poly g7=ptinline(allnodes,l1)*I;
  79. l1=8,11,12;
  80. poly g8=ptinline(allnodes,l1)*I;
  81. l1=9,11,12;
  82. poly g9=ptinline(allnodes,l1)*I;
  83. l1=10,11,12;
  84. poly g10=ptinline(allnodes,l1)*I;

  85. ideal i=f0,f1,f2,f3,f4,f5;
  86. ring r2 = 0, (a,b,c,d,u,v), dp;
  87. ideal i = fetch(r1,i);
  88. ideal g1=fetch(r1,g1);
  89. ideal g2=fetch(r1,g2);
  90. ideal g3=fetch(r1,g3);
  91. ideal g4=fetch(r1,g4);
  92. ideal g5=fetch(r1,g5);
  93. ideal g6=fetch(r1,g6);
  94. ideal g7=fetch(r1,g7);
  95. ideal g8=fetch(r1,g8);
  96. ideal g9=fetch(r1,g9);
  97. ideal g10=fetch(r1,g10);

  98. ideal si=std(i);
  99. ideal j=u;
  100. ideal k=sat(si,j)[1];
  101. ideal sk=std(k);

  102. j=1-u;
  103. k=sat(sk,j)[1];
  104. sk=std(k);

  105. j=v;
  106. k=sat(sk,j)[1];
  107. sk=std(k);

  108. j=1-v;
  109. k=sat(sk,j)[1];
  110. sk=std(k);

  111. j=g1;
  112. k=sat(sk,j)[1];
  113. sk=std(k);

  114. j=g2;
  115. k=sat(sk,j)[1];
  116. sk=std(k);

  117. j=g3;
  118. k=sat(sk,j)[1];
  119. sk=std(k);

  120. j=g4;
  121. k=sat(sk,j)[1];
  122. sk=std(k);

  123. j=g5;
  124. k=sat(sk,j)[1];
  125. sk=std(k);

  126. j=g6;
  127. k=sat(sk,j)[1];
  128. sk=std(k);

  129. j=g7;
  130. k=sat(sk,j)[1];
  131. sk=std(k);

  132. j=g8;
  133. k=sat(sk,j)[1];
  134. sk=std(k);

  135. j=g9;
  136. k=sat(sk,j)[1];
  137. sk=std(k);

  138. j=g10;
  139. k=sat(sk,j)[1];
  140. sk=std(k);

  141. primdecGTZ(sk);
复制代码

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

  3. ring r1=(0, I),(a,b,c,d,u,v,w,t),dp;
  4. minpoly=I^2+1;
  5. list n1=0,1,0;
  6. list n2=1,0,0;
  7. list n3=1,-1,0;
  8. list n4=0,0,1;
  9. list n5=0,1,1;
  10. list n6=1,0,0;
  11. list n7=u,0,1;
  12. list n8=0,v,1;
  13. list n9=1,w,0;
  14. list n10=t,1-t,1;
  15. list n11=a+b*I, c+d*I,1;
  16. list n12=a-b*I, c-d*I,1;
  17. list allnodes=n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,n12;

  18. proc inonecv(list nodes, list index)
  19. {
  20.     matrix m[6][6];
  21.     int kk;
  22.     list n;
  23.     for(kk=1;kk<=6;kk++){
  24.         n=nodes[index[kk]];
  25.         m[kk,1]=n[1]*n[1];
  26.         m[kk,2]=n[1]*n[2];
  27.         m[kk,3]=n[1]*n[3];
  28.         m[kk,4]=n[2]*n[2];
  29.         m[kk,5]=n[2]*n[3];
  30.         m[kk,6]=n[3]*n[3];
  31.     }
  32.     poly p=det(m);
  33.     return (p);
  34. }

  35. proc ptinline(list nodes, list index)
  36. {
  37.     matrix m[3][3];
  38.     int kk;
  39.     list n;
  40.     for(kk=1;kk<=3;kk++){
  41.         n=nodes[index[kk]];
  42.         m[kk,1]=n[1];
  43.         m[kk,2]=n[2];
  44.         m[kk,3]=n[3];
  45.     }
  46.     poly p=det(m);
  47.     return (p);
  48. }

  49. list l1 = 1,2,5,7,11,12;
  50. poly f0=inonecv(allnodes,l1)*I;
  51. l1 = 1,2,5,10,11,12;
  52. poly f1=inonecv(allnodes,l1)*I;
  53. l1 = 1,3,6,7,11,12;
  54. poly f2=inonecv(allnodes,l1)*I;
  55. l1 = 1,3,6,8,11,12;
  56. poly f3=inonecv(allnodes,l1)*I;
  57. l1 = 1,4,6,9,11,12;
  58. poly f4=inonecv(allnodes,l1)*I;
  59. l1 = 1,4,6,10,11,12;
  60. poly f5=inonecv(allnodes,l1)*I;
  61. l1 = 2,3,4,8,11,12;
  62. poly f6=inonecv(allnodes,l1)*I;
  63. l1 = 2,3,4,10,11,12;
  64. poly f7=inonecv(allnodes,l1)*I;
  65. l1=1,11,12;
  66. poly g1=ptinline(allnodes,l1)*I;
  67. l1=2,11,12;
  68. poly g2=ptinline(allnodes,l1)*I;
  69. l1=3,11,12;
  70. poly g3=ptinline(allnodes,l1)*I;
  71. l1=4,11,12;
  72. poly g4=ptinline(allnodes,l1)*I;
  73. l1=5,11,12;
  74. poly g5=ptinline(allnodes,l1)*I;
  75. l1=6,11,12;
  76. poly g6=ptinline(allnodes,l1)*I;
  77. l1=7,11,12;
  78. poly g7=ptinline(allnodes,l1)*I;
  79. l1=8,11,12;
  80. poly g8=ptinline(allnodes,l1)*I;
  81. l1=9,11,12;
  82. poly g9=ptinline(allnodes,l1)*I;
  83. l1=10,11,12;
  84. poly g10=ptinline(allnodes,l1)*I;
  85. ideal i=f0,f1,f2,f3,f4,f5;
  86. ring r2 = 0, (a,b,c,d,u,v,w,t), dp;
  87. ideal i = fetch(r1,i);
  88. ideal g1=fetch(r1,g1);
  89. ideal g2=fetch(r1,g2);
  90. ideal g3=fetch(r1,g3);
  91. ideal g4=fetch(r1,g4);
  92. ideal g5=fetch(r1,g5);
  93. ideal g6=fetch(r1,g6);
  94. ideal g7=fetch(r1,g7);
  95. ideal g8=fetch(r1,g8);
  96. ideal g9=fetch(r1,g9);
  97. ideal g10=fetch(r1,g10);

  98. ideal si=std(i);
  99. ideal j=u;
  100. ideal k=sat(si,j)[1];
  101. ideal sk=std(k);

  102. j=1-u;
  103. k=sat(sk,j)[1];
  104. sk=std(k);

  105. j=v;
  106. k=sat(sk,j)[1];
  107. sk=std(k);

  108. j=1-v;
  109. k=sat(sk,j)[1];
  110. sk=std(k);

  111. j=w+1;
  112. k=sat(sk,j)[1];
  113. sk=std(k);

  114. j=t;
  115. k=sat(sk,j)[1];
  116. sk=std(k);

  117. j=t-1;
  118. k=sat(sk,j)[1];
  119. sk=std(k);

  120. j=g1;
  121. k=sat(sk,j)[1];
  122. sk=std(k);

  123. j=g2;
  124. k=sat(sk,j)[1];
  125. sk=std(k);

  126. j=g3;
  127. k=sat(sk,j)[1];
  128. sk=std(k);

  129. j=g4;
  130. k=sat(sk,j)[1];
  131. sk=std(k);

  132. j=g5;
  133. k=sat(sk,j)[1];
  134. sk=std(k);

  135. j=g6;
  136. k=sat(sk,j)[1];
  137. sk=std(k);

  138. j=g7;
  139. k=sat(sk,j)[1];
  140. sk=std(k);

  141. j=g8;
  142. k=sat(sk,j)[1];
  143. sk=std(k);

  144. j=g9;
  145. k=sat(sk,j)[1];
  146. sk=std(k);

  147. j=g10;
  148. k=sat(sk,j)[1];
  149. sk=std(k);

  150. primdecGTZ(sk);
复制代码

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

而如果上面第一种只有u,v参数的情况,我们只选择添加两个5点圆,比如0,3,类似可以解得余下方程组:
  1. sk[1]=2au-2av+uv-u
  2. sk[2]=2b2-ac+bd-cv-a+c+v-1
  3. sk[3]=2ab+bc+ad+dv-b-d
  4. sk[4]=2a2+ac-bd+cv-3a-c-v+1
  5. sk[5]=2av2+2cv2-uv2+2cu-2cv-uv-2v2+2v
  6. sk[6]=buv+dv2+du-dv
  7. sk[7]=c2v+d2v+2ac+c2+2bd+d2-2cv-2a-2c+v+1
  8. sk[8]=bcv-adv-bv+dv-d
  9. sk[9]=acv+bdv-av-cv+2a+c+v-1
  10. sk[10]=2bdu-2bdv-cuv-cu-2av+2uv
  11. sk[11]=c2u+d2u+4ac+2c2+4bd+2d2-2cu-2av-2cv+uv-2c+2v
  12. sk[12]=2bcu-2adv+duv+du+2dv-2d
  13. sk[13]=2cuv2-u2v2-2cv3+2cu2-4cuv-u2v+2cv2+2v3+2uv-2v2
  14. sk[14]=4bdv2+4d2v2+u2v2+2cv3+4d2u-2cu2-4d2v+6cuv+u2v-6cv2-2uv2-2v3-4cu+4cv+6v2-4v
  15. sk[15]=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, 得到
  1.       _[1]=25v3-95v2-36v+36
  2.       _[2]=5/2v2+u-17/2v-9
  3.       _[3]=-5/18v2+b+11/9v+1/6
  4.       _[4]=-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)
但是由于有两个点坐标极大,不适合作图。

评分

参与人数 1威望 +12 金币 +12 贡献 +12 经验 +12 鲜花 +12 收起 理由
wayne + 12 + 12 + 12 + 12 + 12 singular 也会啊

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2022-11-19 11:47:39 | 显示全部楼层
12棵树每5棵一个圆的方案中,先将一颗投影到无穷远,余下11棵最多构成6条包含4树的直线,然后计算11棵树能够构成的最多5点圆。
Singular直接计算会异常慢,于是我改用32003阶有限域计算,可以淘汰5个圆的情况。而所有4个圆的情况见
https://github.com/emathgroup/se ... ched/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为纯虚数)。看来余下文件有很大可能都没有实数解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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
t10.12.1.png
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
t10.12.2.png
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
t10.12.3.png
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
t10.12.4.png
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
t10.12.5.png
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
t10.12.6.png
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
t10.12.7.png
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
t10.12.8.png
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
t10.12.9.png
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
t10.12.10.png
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
t10.12.11.png
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
t10.12.12.png
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
t10.12.13.png



毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2022-11-20 18:39:30 | 显示全部楼层
楼上分析表明,如果11棵树有31个或以上四点圆,那么所有点经过圆的数目累加不小于31×4=124.
而如果每棵树经过的圆都最多只有11棵,那么所有点经过圆点数目累加不超过11×11=121.由于每个点经过的圆最多12,
所以至少有不少于3个点经过的圆点数目为12.
我们可以先将楼上10棵树12条3棵树直线的方案两两组合并且组合时任意重排点,然后看是否存在合法的方案。
现在搜索在正进行中,估计需要计算一天左右的时间,部分结果如下:
sd11tree2_12c.tgz (20.18 KB, 下载次数: 0)
大部分还是非法解,比如f4628.out里面是
succ
si[1]=2*c+(5t+7)
si[2]=5*b+(-t+2)*d
si[3]=2*a+(-2t-3)
si[4]=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[1]=2*c+(-t2+t-2)
si[2]=b+d
si[3]=2*a+(-t2+t-2)
si[4]=4*d2+(-t-3)
对应t=-0.75487766624669276004950889635852869189,d=0.74918661456163697932287580846141719679,b=-0.74918661456163697932287580846141719679,
a=c=1.6623589786223730129804544272390486704
得到变换阵:
[-1.0000000000000000000000000000000000000 0.66235897862237301298045442723904867038 0]
[0 -0.74918661456163697932287580846141719678 0]
[0.43015970900194673408860004188043135115 0.43015970900194673408860004188043135115 -1.4301597090019467340886000418804313512]
变换后各点坐标为:
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
sample24.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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]
[0.99999999999999999999999999999999999999 -1.4142135623730950488016887242096980785 -2.0000000000000000000000000000000000000]

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个四点圆了。看来需要更多代码来后处理。

评分

参与人数 1威望 +8 金币 +8 贡献 +8 经验 +8 鲜花 +8 收起 理由
northwolves + 8 + 8 + 8 + 8 + 8 神马都是浮云

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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个四点共圆中存在五点共圆,所以实际圆点数目要减少
c27.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 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]
[0 -0.34620989492339901594966107566213561308 0]
[-1.1938775510204081632653061224489795919 0.92764378478664192949907235621521335802 0.19387755102040816326530612244897959185]
点坐标,
11点30圆图:
c27.2.png
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-4-19 02:05 , Processed in 0.047826 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表