mathe 发表于 2024-8-2 22:52:48


计算机产生的解,看上去挺有意思的。

ejsoon 发表于 2024-8-2 23:45:33

gxqcn 发表于 2024-8-2 13:48
好久没人提 整线段/碎线段 了,我提一个猜想,欢迎证明或证伪:
16线图案的结构特征已经探明,这个应该可以证明。
关于16线图,一些简单的已知事实如下:
1、一条线上的交点数:过中心者奇数,不过中心者为偶数。
2、线条都不过中心。
3、没有孤立正方形。
4、没有三点共线。
5、每个线条与一个正方形相交于0点或者2点。

根据以上事实可以得到以下推论:

推论1:整线段都有偶数个交点,如果把交点看作剪断处,一个整线段会被剪成奇数段碎线段。
推论2:任一整线段可能有4、6、8个交点,分别对应与其它1、2、3个正方形相交的情况。
推论3:任一整线条可能被剪成3、5、7条碎线段。
推论4:任一个正方形,每添加一条新线段与之相交,都会产生2个新交点。

对于B类
记3个水平正方形□A,□B,□C,斜正方形记为◇D。
不妨假定一个备方图为□B分别与□A、□C构成井字格,□A与□C不相交。则备方图上 □A每边4点,□B每边6点,□C每边4点.
不妨假定◇D与□A相交、与□C不相交,由于◇D必与□B交于2点,所以每个中心正方形的一条边上的交点数和碎线段数如下表所示:
         □A      □B      □C      ◇D      交点数合计         碎线段数
□A      2         2         0         2               6                     5
□B      2         2         2         2               8                     7
□C      0         2         2         0               4                     3
◇D      2         2         0         2               6                     5

对于C类,记有□A, □D, ◇B, ◇C. 井字格AD,井字格BC。
不妨假定◇B与□A, □D 相交,◇C与□A, □D不相交,则每个中心正方形的一条边上的交点数和碎线段数亦如上表所示。

对于D类,看作B类就好。

mathe 发表于 2024-8-3 09:58:32


搜索出了127个结果 (B类型),不过很可能有错误和遗漏。
对于B型(3个正向中间正方形),设中心在原点,三个正向正方形在第一象限顶点横坐标分别为a,b,c (a<b<c)
斜向中心正方形在y轴正方向顶点纵坐标为d。
于是直线y=x+d和各正向正方形的边所在直线交点加上斜向中心正方形本身在这直线上顶点共14个点,它们纵坐标分别为
a,b,c,a+d,b+d,c+d,d-a,d-b,d-c,d, -a, -b,-c, 0
分别用
ABC DEF GHI M NOP Q来表示它们。
这些点在这条直线上的顺序代表了一个这个构图的一个特征,答案文件名第一部分就是对y=x+d上这些点按纵坐标顺序的排列。
比如文件
PIOHNGQMADBECF.K0.1.b.1.svg
其中P开头代表纵坐标最小的点纵坐标为-c(所以所有文件都是P开头),然后下一个为I代表纵坐标d-c等等。
然后用.隔开后为一个字母,对应构图中缺的横边位置,
其中字母ABC代表第二行缺横边(也就是边长为2b的正方形横边不会延长到外正方形)
   这种结构会要求b=3a ,c=32或c=2a+b, 分别用A,B,C表示。
其中字母KLMN代表第三条横边延长到中间正方形但是没有延长到外正方形
   这种结果会分别要求c=2b-a, b=3a, c=3b 或 c=2b+a,分别用这4个字母标识
其中字母U代表第三条横边(内正方形边长)没有延长到中间正方形,但是对应位置中间正方形和外边正方形有连边,如下图

(PIOHNGQMADBECF.U0.0.26.41.svg)
由于上面所有图中实际上每个图形都缺了一条短边(以及它的对称位置),而y=x+d有可能和这条短边或它的某个对称位置相交把它分成两段,
分成两部分如果仅仅其中一部分被使用,那么只会改变三角形数量,不会改变正方形数量。这个字母后面的数字就用来代表这条线段是否会部分显示。
它可以是012,0代表全部不使用,1代表左边被使用,2代表右边被使用。
然后下一个数字可以是0~7,分别代表三个正向正方形边是否会延申到大正方形外部到达y=x+b (如果y=x+b和它相交在大正方形外部)。
再后面是一个16进制数,其各比特用来表示y=x+b上各线段是否需要使用。由于对称性,只需要描述左边一半,而且斜向正方形的边部分必须出现,也不在编码范围。
最后一个数字只是一个计数器,没有其它特殊含义。

代码中显然还有bug,比如文件
PIOHNGQMADBECF.U2.0.32.64.svg
中U2后面的2部分没有被显示。但是这个图补上2以后三角形数目应该超标了。(对U类型的图看来处理还有问题)


ejsoon 发表于 2024-8-3 12:42:23

mathe 发表于 2024-8-3 09:58
搜索出了127个结果 (B类型),不过很可能有错误和遗漏。
对于B型(3个正向中间正方形),设中心在原点,三 ...

我挑了七個正確且漂亮的圖:



其實我還是建議限定網格(比如12方),不知這個算法能否固定網格?同時希望外圍是正方形,這樣或許能減少很多不必要的計算。

ejsoon 发表于 2024-8-3 13:03:46



受電腦啟發做的圖,不知以後mathe的程式能否算出這張圖?

mathe 发表于 2024-8-3 19:38:07


这次看上去要好一些,还对三角形做了标记。

以这个图为例,其中蓝色点代表其所在行,列和直线y=x+d构成一个等腰直角三角形。
红色小线段,代表其所在行和过点(0,d)的两条斜线构成等腰直角三角形。两部分加起来必须6个。
再根据对称性,总数是其4倍,即4*6=24.

mathe 发表于 2024-8-3 21:51:21


这个图看上去挺不错的

mathe 发表于 2024-8-4 08:17:06


更新一下。然后修改了程序给了另外一个版本好像都是对的,就是不知道是否有遗漏

mathe 发表于 2024-8-4 15:50:29


更新一下,紧跟着单字母后面的数字从原先只能0,1,2升级为0,1,4,6. 其中0,1和原先意义相同,2扩充为4,6两种,分别和上面以及下面横线相交的结果。
总共有237个结果。
图片最下面还有a,b,c,d的约束式,以及作图时选择的a,b,c,d的取值(现在把最终要的c放在最前面,代表最大正向正方形边长一半,比如c=6就代表正方形为12*12)

mathe 发表于 2024-8-4 22:08:52


修正了前面数三角形中漏了一个方向的问题。但是奇怪好像最终结果都没有那个方向的三角形。
这次总共380个,其中最外面正方形外面没有额外线的181个(*.??.0.*.*.svg)
页: 1 2 3 4 5 6 7 8 9 10 [11] 12 13 14
查看完整版本: 包含24個正方形和24個等腰直角三角形的方形对称图案