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

[讨论] A4正方形

  [复制链接]
发表于 2020-12-17 15:18:30 | 显示全部楼层
点 (a,a) 在角上正方形外边包络内边缘,因此楼上右图首尾两个正方形摆正的方案比155#的更宽裕。
经验算能治愈99.
角上正方形的包络.PNG
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-12-17 22:18:47 来自手机 | 显示全部楼层
嗯,我是被141#的26正方形方案误导了

点评

赞同!随着 u、v 越来越大,uv+2 这种构型空白空间的利用率会越来越小,只有靠拆拆补补才能塞进更大的小正方形。  发表于 2020-12-18 10:13
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-12-18 12:24:39 | 显示全部楼层
88#的分析中,错误的设定了斜向小正方形的数目为u+1,所以导致sqrt2.c代码没有搜索到99个小正方形的这种划分方案。
如果我们仅分析这种斜向小正方形可以充分利用锯齿状宽度的方案还是比较简单的:
25      {Cm 4*6-2+3}     0.211521
36      {Cm 5*7-3+4}     0.180396
37      {Cm 5*7-3+5}     0.180396
41      {Cm 5*8-3+4}     0.168771
49      {Cm 6*8-4+5}     0.158091
55      {Cm 6*9-4+5}     0.147191
56      {Cm 6*9-4+6}     0.147191
71      {Cm 7*10-5+6}    0.131169
72      {Cm 7*10-5+7}    0.131169
73      {Cm 7*10-5+8}    0.131169
89      {Cm 8*11-6+7}    0.118766
90      {Cm 8*11-6+8}    0.118766
98      {Cm 8*12-6+8}    0.112948
99      {Cm 8*12-6+9}    0.112948
109     {Cm 9*12-7+8}    0.108924
118     {Cm 9*13-7+8}    0.103109
119     {Cm 9*13-7+9}    0.103109
120     {Cm 9*13-7+10}   0.103109
141     {Cm 10*14-8+9}   0.095162
142     {Cm 10*14-8+10}  0.095162
143     {Cm 10*14-8+11}  0.095162

点评

Cm 新类型对55 56没有得更优解,对98,99得到更优解,改进了算法?  发表于 2020-12-18 12:59
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-12-18 20:02:33 | 显示全部楼层
sqrt2.tgz (52.67 KB, 下载次数: 10)
更新一下,修正了前面的bug
结果中Cm如160#右边的模型


Cm2如93#中模型


m*n+h如153#


m*n+2V 如37#

类似有m*n+2H

V*** 如52#


H***如53#


LV***以及LH***类似V***,H****,唯一的区别是允许左右或上下少量留空,如108#


m*n或m*n-h如20#


还有C2和C4专指中间有两个或四个倾斜的正方形的情况,如80#


还有Cu1/Cu2应该是C2/C4或Cm/Cm2等的变种,具体意义有点忘了。

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-12-19 12:51:56 | 显示全部楼层
本帖最后由 dlpg070 于 2020-12-19 16:32 编辑
mathe 发表于 2020-12-18 20:02
更新一下,修正了前面的bug
结果中Cm如160#右边的模型


20201218版改进很大,改进效果明显

DType 修改1项,增加4项
T1改为Tk                                    
增加 4项:dV,dH,Cm,Cm2
n=27 双排没有作为新类型处理
n=17不是等错排列,s形排列,待深入研究


修改或新增类型n<1000 ,有最优解的统计如下:
Tk  39项
Cm 106项
Cm2 20项
dV   0项
dH   0项
参考:
V:   291项 斜排
----------
代码修改小建议:
我每次编译新版本需要修改3处:希望预先改好,我可偷闲

1 int main() 尾部 加 return 0;
2 2处类型强制转换
  v.type =(DType) type;
  
3 为了统计方便,建议Tk类型输出时增加类型字符: Tk
                printf("%d\t{Tk %d*%d+%d}\t %f(%f)\n", n, v->tvalue.x, v->tvalue.y, v->tvalue.k, v->value,v->value*v->value*n/sqrt(2));
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2020-12-20 11:33:09 来自手机 | 显示全部楼层
现在模型Cm或Cm2会在右上角留下一长串名列,有些浪费。如果参考现在17个正方形的方案,可以考虑将倾斜正方形从某个位置分割为两段,然后把上面部分上移若干行,就可以把部分空列挪移到中间,然后模仿17方案,去除此空列边上一列得到宽度大于a的空列改为竖向排列尽量多倾斜的小正方形是不是可以产生更优方案?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-12-20 14:51:21 | 显示全部楼层
mathe 发表于 2020-12-18 20:02
更新一下,修正了前面的bug
结果中Cm如160#右边的模型

160# 右图 Cm方案 和 93# Cm2方案 实际是同一方案 ,包括Cu2常常就是Cm2
这类特点是左下右上等差排列斜放正方形,b,c宽度缝隙不靠边,不考底或顶,可统一处理
例如 n=56=4*6+2=4*6-2+4
最优前8个解如下(因为通常有3---4个斜排优秀接解,增加到8 ,可以看到其它类型的解)

56        {Cm 6*9-4+6}         0.14719068059(0.85789405053)
56        {Tk 6*9+2}         0.14708067208(0.85661217072)
56        {Cu2 6*9} t=1.23095941734         0.14644660941(0.84924240492)
56        {V: n=7,u=10,w=8,s=5,t=0.39747591201}         0.14616935803(0.84602989294)
56        {V: n=7,u=13,w=7,s=6,t=0.39006183061}         0.14589074376(0.84280772165)
56        {C4 6*9}         0.14495375471(0.83201655500)
56        {V: n=8,u=4,w=10,s=2,t=0.66679005118}         0.14482354820(0.83052248799)
56        {V: n=7,u=11,w=8,s=4,t=0.35261477117}         0.14462020362(0.82819187689)
注意有Cu2 没有Cm2

A4_56_Cm_20201217.png
A4_56_Cm_20201217.png
n=56 Cm方案,图形 ,供深入分析参考
斜放的6个正方形均匀排列 显得空隙较大,
实际与160#右图 a值完全一样, 那张图以O为中心紧凑均匀排列

点评

uk702改 8,14为斜放思路类似双排斜放,类似n=27,有前途,需大数实例,mathe利用顶部b宽的空白,类似2次混排,希望很大.我初步选n=252 n=321 n=42 作图,希望有人用GGB等专业软件画图,有信心发现更优解  发表于 2020-12-21 11:47
是的,受制于图中10个小红点的5条绿色虚线,应有改进可能,n大时提高可能性增加,我准备画 100---200之间的一个数研究, 166#的想法不错  发表于 2020-12-20 16:28
受制于正方形7和正方形2之间的距离,不拿掉一些小正方形似乎没有增长的余地了。  发表于 2020-12-20 15:43
不知2、8 、14 拿掉改成斜放能不能摆得下?如果能摆得下的话,或许还可以将 r4、r5、r6 左移,视作 r1、r2、r3 向上移动(只上移不右移)3行或4 行。  发表于 2020-12-20 15:41
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-12-23 13:01:03 | 显示全部楼层
本帖最后由 dlpg070 于 2020-12-23 17:11 编辑
mathe 发表于 2020-12-20 11:33
现在模型Cm或Cm2会在右上角留下一长串名列,有些浪费。如果参考现在17个正方形的方案,可以考虑将倾斜正方 ...


分析面积利用率,得知,顶部已经不可能再改进
本来对于顶部垂直空白处改进抱有很大希望,特意画出n=252图形,但深入分析后,彻底失望了

顶部面积利用率 k1= u a
A4页面平均面积利用率 k= (n a a)/(Sqrt[2])
计算得 k1>k
例如1:
n= 56
a= 0.147191
b= 0.116856
c= 0.0894974
u= 6
v= 9
d= 4
w= 6
t= 0.857894
td= 49.1537
k= 0.857894
v1= 3
k1= 0.883144
e1(>0)=2.17222*10^-14
k1>=k? True

例如2:
n= 252
a= 0.072308
b= 0.0599955
c= 0.0403608
u= 13
v= 19
d= 11
w= 16
t= 0.857894
td= 49.1537
k= 0.931663
v1= 6
k1= 0.940005
e1(>0)=-1.23693*10^-11
k1>=k? True

点评

上部比下部优,意味上部不是待改进的地方,提示下部可以改进,还有新构图(排列方案),更优解,希望仍存  发表于 2020-12-25 08:46
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-12-24 07:12:09 | 显示全部楼层
本帖最后由 王守恩 于 2020-12-24 09:09 编辑
dlpg070 发表于 2020-12-23 13:01
分析面积利用率,得知,顶部已经不可能再改进
本来对于顶部垂直空白处改进抱有很大希望,特意画出n=252图 ...

三个工具。
1,一堆积木(大小相同的正方形)
2,长方形棋盘(多一条(斜率\(\sqrt{2}\))斜线,右下角为起点)
3,一根活动的直角木条(顶点永远在斜线上)
n 块积木,总会被挤在某个木条范围内
对每个 n 来说,比较斜线总会有一条是最短的。
显见
积木(任意)顶点永远不会与斜线重合,但总是会有一些靠得很拢。
解题是一个互动的过程,我们享受的是环节中的附产品(跑题了)。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2020-12-24 08:55:11 | 显示全部楼层
本帖最后由 uk702 于 2020-12-24 09:10 编辑
dlpg070 发表于 2020-12-20 14:51
160# 右图 Cm方案 和 93# Cm2方案 实际是同一方案 ,包括Cu2常常就是Cm2
这类特点是左下右上等差排列斜放 ...


我个认为随着 n 的增加,多行斜排、包括团排可能是必然会出现的。
Image 1.png

点评

还有更优解,期盼新构图  发表于 2020-12-25 08:40
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-12-28 19:20 , Processed in 0.030110 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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