- 注册时间
- 2007-12-27
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 40155
- 在线时间
- 小时
|
楼主 |
发表于 2022-10-26 19:54:02
|
显示全部楼层
由于我们很难找到有效的算法从一大批点中选择数十个点包含尽量多的合法曲线,我们可以改为考虑直接选择比较小的素数域中四次曲线,然后找出这个有限域中所有和这条曲线有四个交点的直线。
对于q阶有限域中非退化三次曲线,其上的点的数目是非常接近q的,通常和q的差值不超过$2\sqrt{q}$.
但是我试验了一下四次曲线,发现上面点的数目可以有比较大的波动。
为了计算方便,在计算中我们选择四次项只有$x^4+cy^4$两项,其中$-c$不是q的二次剩余,从而保证曲线上不存在无穷远点,便于我们计算。
我们可以穷举所有可能的x,y (穷举0~q-1所有组合),找出所有落在曲线上的点,得到了曲线的点集。
然后对于曲线上任意两点不同的$(x_i,y_i), (x_j, y_j)$,我们找出经过两点多直线$y=kx+m$ (或者直线$x=x_i$), 消去y可以得到关于x的四次方程$(1+ck^2)x^4+...=0
$, 由于我们选择c不是二次剩余,那么首项系数$1+ck^2$必然不是0,所以可以所有系数乘上它的逆变成一个首一多项式比如$x^4+ux^3+vx^2+...=0$
由于我们已经知道$x_i,x_j$是这个方程的两个根,我们可以知道另外两个根$x_1,x_2$会满足$x_1+x_2+x_i+x_j=-u, x_1^2+x_2^2+x_i^2+x_j^2=u^2-2v$
由此得到$x_1+x_2=-u-x_i-x_j=A, x_1^2+x_2^2=u^2-2v-x_i^2-x_j^2=B$, 然后$2B-A^2=(x_1-x_2)^2$, 所以在$2B-A^2$是q的二次剩余时方程才有解,对应这条直线经过曲线上四个点,我们需要保留;不然直线上只有两个点,我们不予保留。
上面过程中,由于$2B-A^2$如果看成一个随机数,那么它是二次剩余的概率接近$1/2$, 所以我们可以知道对于总共n个点的情况,任意选择两个点确定一条直线可以得到大概$n^2/2$条直线,其中对于$2B-A^2$是平方剩余的只有一半,所以留下了约$n^2/4$种组合,但是对于任意一条过四点多直线,它上面任何两个点都会被计算一次,所以这种方案每条过四点的直线会被计算6次,所以实际上过四点的直线的期望数目大概只有$n^2/24$种 (但是由于存在概率性,会有一定波动)。
计算结果也验证了这种方法的确只能找到$n^2/24$左右条直线,比如搜索了很多种不同曲线,有限域的阶比如可以选择11,19,23等,最优情况大概找到20个点有18条过四点的直线,远远没有达到我们以前找到的20棵树可以23行的结果。
于是我又想到我们是否可以考虑在有限域上同时使用两条不同的二次曲线,由于一条直线和每条二次曲线会有两个交点,合在一起也会有四个交点。
而如果假设两条二次曲线在有限域上点的数目比较接近,都约等于n,那么总共有约2n个点。那么从两条曲线上各自选择一个点,连接起来,得到的直线会必然和两条二次曲线均有另外一个合法的点,得到一条过四点的直线。同样,对于一条这样的直线,上面点的选择有四种不同的选择方法,所以每条直线被重复计数4次,我们得到这样的方法大概可以构造出$n^2/4 = (2n)^2/16$条直线。(如果这些点有重合的要淘汰点,但是重复点通常比例不高,可以忽略)。
试着挑选了一些二次曲线做计算的确发现这种方法得到的直线数目挺多的,但是可以发现到现在为止直线数目高的结果不是实数域中合法解,还没有找到特别好的结果。
https://github.com/emathgroup/se ... d/files/ft5.11.outs
比如上面链接中有23个数26行以及24个数36行的结果。(和11阶素数域中两条二次曲线相交的直线)
但是再次用更大数域筛选上面的数据,去除不符合的数据,淘汰后留下的数据就不怎么好了
https://github.com/emathgroup/se ... les/ft5.11.outs.flt
23个数和24个数都最多只能24行。
计算结果表明虽然两条二次曲线产生的初始结果的确会有更多"直线"数目更多的解,但是大部分不是实数域范围内的解。 |
|