返回列表 回复 发帖 免费斗地主赢30元充值卡

[转载] 植树问题

相关搜索: 果树问题
http://www.eol.cn/zheng_ming_1877/20060309/t20060309_166193.shtml

数学世界三大难题之20棵树问题新突破  
时间:2006-03-09 作者:王兴君

具体就是20棵树每行4棵,最多多少行

因为下面有声明,不得转载
所以就不转帖了

我有疑问
他上面的图里的23行解法是否严格形成23根直线
我去了Mail要坐标
希望能看到回信

有了解的说下
需要说明的是,他那篇里的图(四)是已有成果,也是通过计算机发现的,
而他却标榜为以自己名字命名的图谱,有点不合适。
补记:
  对不起,是我记混了,已在 12# 作了说明。


我怀疑他图5的点不重合
关于图四的结果,有什么链接吗?
图五我也有点怀疑
没有

GxQ似乎知道
我大概算了一下坐标。不过没仔细检验共线。

从上到下,从左到右:


                                                                         $(0,120sqrt(3))$





                  $(-90,90sqrt(3))$             $(-30,90sqrt(3))$              $(30,90sqrt(3))$             $(90,90sqrt(3))$

                                                                $(0,80sqrt(3))$
                                                       $(-15,75sqrt(3))$ $(15,75sqrt(3))$
                                                                $(0,72sqrt(3))$

                        $(-60,60sqrt(3))$         $(-20,60sqrt(3))$          $(20,60sqrt(3))$         $(60,60sqrt(3))$      


                                                    $(-15,45sqrt(3))$      $(15,45sqrt(3))$


                              $(-30,30sqrt(3))$                                                $(30,30sqrt(3))$





         $(-120,0)$                                                 $(0,0)$                                                           $(120,0)$
5

评分次数

  • mathe

要每天进步!


要不把23根线都算下共线
也好算
$(x_1 - x_0) // (y_1 - y_0)$
还是等我给作者发的信回信吧
感觉你说的坐标也不对
18,19,20 可能不在一条直线上
我算了,好象都没有错^_^
要每天进步!
嗯,结果是正确的(程序对所有点用a~t的字母标号,先从上到下,同一行从左到右):
  1. #include <stdio.h>
  2. #include <assert.h>
  3. #include <stdlib.h>

  4. char lines[][5]={
  5.     "acjr",
  6.     "agkp",
  7.     "afis",
  8.     "ahlq",
  9.     "admt",
  10.     "bcde",
  11.     "bgim",
  12.     "bkot",
  13.     "bjps",
  14.     "ehij",
  15.     "elnr",
  16.     "emqs",
  17.     "ckns",
  18.     "dlos",
  19.     "dikr",
  20.     "cilt",
  21.     "dhnp",
  22.     "cgoq",
  23.     "dfgj",
  24.     "cfhm",
  25.     "jklm",
  26.     "mopr",
  27.     "jnqt"
  28. };

  29. int x[]={0,-90,-30,30,90,0,-15,15,0,-60,-20,20,60,-15,15,-30,30,-120,0,120};
  30. int y[]={120,90,90,90,90,80,75,75,72,60,60,60,60,45,45,30,30,0,0,0};

  31. void check_line(int k)
  32. {
  33.     int xx[4],yy[4];
  34.     int dx,dy;
  35.     int i;
  36.     for(i=0;i<4;i++){
  37.         xx[i]=x[lines[k][i]-'a'];
  38.         yy[i]=y[lines[k][i]-'a'];
  39.     }
  40.     dx=xx[1]-xx[0];
  41.     dy=yy[1]-yy[0];
  42.     for(i=1;i<3;i++){
  43.         int ldx,ldy;
  44.         ldy=yy[i+1]-yy[i];
  45.         ldx=xx[i+1]-xx[i];
  46.         if(ldx*dy!=ldy*dx){
  47.             fprintf(stderr,"Not a line for %s\n",lines[k]);
  48.         }
  49.     }
  50. }

  51. int main()
  52. {
  53.     int i,j;
  54.     assert(sizeof(lines)/sizeof(lines[0])==23);
  55.     assert(sizeof(x)/sizeof(x[0])==20);
  56.     assert(sizeof(y)/sizeof(y[0])==20);
  57.     for(i=0;i<23;i++){
  58.         for(j=i+1;j<23;j++){///Check not same lines
  59.             int k;
  60.             for(k=0;k<4;k++){
  61.                 if(lines[i][k]!=lines[j][k])
  62.                     break;
  63.             }
  64.             if(k==4){
  65.                 fprintf(stderr,"lines[%d]==lines[%d]=%s\n",i,j,lines[i]);
  66.                 exit(-1);
  67.             }
  68.             for(k=0;k<4;k++){
  69.                 if(lines[i][k]!=lines[i][3-k])
  70.                     break;
  71.             }
  72.             if(k==4){
  73.                 fprintf(stderr,"lines[%d]==lines[%d]=%s\n",i,j,lines[i]);
  74.                 exit(-1);
  75.             }
  76.         }
  77.     }

  78.     for(i=0;i<23;i++){
  79.         check_line(i);
  80.     }
  81.     return 0;
  82. }
复制代码
返回列表