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

[讨论] CSDN上的两个问题

[复制链接]
发表于 2009-11-13 10:39:27 | 显示全部楼层
10# litaoye

      9# 的回复有道理。我刚刚想到这个,对于每个图形(通过旋转的得到的各个图形视为同一个图形。)可用width, height, 和2进制串来唯一标识。其中规定width>=height. 对于如果height>width,可将其旋转90度。对于width!= height, 最多有2种变体,对于width== height的图形,最多有4种变体。 每个变体可表示为1个2进制串,2进制串字段存储这些这些变体对应的2进制串的最小值。
   到现在,我感卷我的思路已经很清晰了,所有的关节都打通了。剩下的只是编程问题了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-11-13 10:57:03 | 显示全部楼层
太好了,int32做Hash应该可以把前9项都求出来,到时候再到
http://www.research.att.com/ 去搜一下,可能能找到一些更直接的数学方法

10# litaoye

      9# 的回复有道理。我刚刚想到这个,对于每个图形(通过旋转的得到的各个图形视为同一个图形。)可用width, height, 和2进制串来唯一标识。其中规定width>=height. 对于如果height>width,可将 ...
liangbch 发表于 2009-11-13 10:39
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-11-13 12:11:11 | 显示全部楼层
本帖最后由 liangbch 于 2009-11-13 12:27 编辑

我觉得还是csdn 92楼的复杂度低一些。因为,在n个方块构成的图案的基础上,增加一个方块以得到n+1个方块的图案时,有太多的构造方法。例如
  若n=13, 则包络矩形的面积最大可至7 *7 ,若在此基础上构造14个方块的图案,需要在 9*9的画布上的每一个方格进行尝试。
  而csdn 92楼的,在n个方块构成的图案的基础上,增加一个方块以得到n+1个方块的图案时,只有3种方法(n=1时是4种方法)。 此法的缺点是
   1. 在构造n+1个方块的图案时,需要保留n个方块的所有图案,即使这些图案中有大量是同构的(包括方位相同图案全等,和方位不等图案全等2种情况)也不能删除。
   2. 有些合法的图案构造不出来,参见15楼。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-11-13 12:23:33 | 显示全部楼层
92楼的构造方法稍微有些问题,这样的图案似乎构造不出来,
■ ■ ■ ■
 ■

另外也不是每步有3个选择,其实只有2个,并且如果只按照这两个方向走下去的话,
有更直接的计算方法。

1 1 1 1 1
1 2 3 4 5
1 3 6 10 15
1 4 10 20 35
1 5 15 35 70

基本上就是2^(n-1)减去同构的,同构的个数也是可以计算的。

我觉得还是csdn 92楼的复杂度低一些。因为,在n个方块构成的图案的基础上,增加一个方块以
得到n+1个方块的图案时,有太多的构造方法。例如
  若n=13, 则包络矩形的面积最大可至7 *7 ,若在此基础上构造14个方块的图 ...
liangbch 发表于 2009-11-13 12:11
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-11-13 12:24:17 | 显示全部楼层
本帖最后由 liangbch 于 2009-11-13 12:26 编辑

13# liangbch
     下图是4个方块组成的合法的图案,可按照csdn92楼的方法构造不出来。
002.jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-11-13 13:27:01 | 显示全部楼层
csdn中92#的方法显然不行。
用n个方格的方案构造n+1个方案的方案是比较可行的。而且设计的好,可以不需要保存n个方格的方案,而且可以不重复产生。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-11-14 14:25:22 | 显示全部楼层
根据前几个数,去http://www.research.att.com/ 找到了2个序列,不知道是不是俄罗斯方块的解
1, 1, 2, 7, 20, 58, 174, 519, 1550
0, 1, 2, 7, 20, 61, 182, 547, 1640
litaoye 发表于 2009-11-12 17:13

n=5时找到18种方案,n=6时60种方案,查了一下是这个序列:
http://www.research.att.com/~njas/sequences/A000988

评分

参与人数 1威望 +1 鲜花 +1 收起 理由
litaoye + 1 + 1 精彩绝伦

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2009-11-14 14:36:50 | 显示全部楼层
本帖最后由 northwolves 于 2009-11-14 14:42 编辑
csdn中92#的方法显然不行。
用n个方格的方案构造n+1个方案的方案是比较可行的。而且设计的好,可以不需要保存n个方格的方案,而且可以不重复产生。
mathe 发表于 2009-11-13 13:27

这个感觉可行,只是还会重复
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-11-14 23:12:58 | 显示全部楼层
看来我手工数的有问题,还是狼兄弟的这个答案比较靠谱,也发到CSDN上一份吧!

n=5时找到18种方案,n=6时60种方案,查了一下是这个序列:
http://www.research.att.com/~njas/sequences/A000988
northwolves 发表于 2009-11-14 14:25
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2009-11-14 23:22:42 | 显示全部楼层
已经提前在CSDN上给northwolves 同志做个广告,呵呵。

第一题大家有什么更巧的方法么?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-5-2 06:57 , Processed in 0.074913 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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