Jackie_Guo 2016-02-19 07:35 采纳率: 100%
浏览 1608
已采纳

如何计算 随机数量的正方形可以拼成多边形的数量?

大家玩过 俄罗斯方块吧,里面所有的图形都是由四个正方形组成的,我想做一个程序来算出并画出n个相同的正方形可以画出的多边形的数量,旋转后一样的算一个,大神有什么好的算法?
谢谢!

  • 写回答

1条回答 默认 最新

  • 林深 2016-02-19 09:56
    关注

    我没有想到什么太好的方法,不过递推和暴力剪枝可以试一下。
    我的思路是这样的:
    首先确定这个是可以通过递推做的,因为n=4组成的所有的多边形可以由n=3组成的所有多边形的基础上再添加一个正方形推出来的。
    所以,我们可以从n=1的时候出发。
    1.n=1,就只有一种多边形,毫无问题。
    2.n=2,从n=1的基础上再添加一个正方形,我们可以放置的位置为 上下左右 4个方向,各自加入1个正方形,这样获得了4个新的多边形,然后进行旋转去重,去掉重复的,这样就得到了n=2的答案。
    3.n=3,从n=2的基础上再添加一个正方形,对每一个可以防止新的正方形的位置尝试放置正方形,这样总共可以获得6个新的多边形,然后再进行旋转去重,就可以得到n=3的答案。
    4.。。类推。
    图片说明
    思路图是这样的,程序可以实现,不过挺麻烦的

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!