【发布时间】:2011-07-11 03:22:20
【问题描述】:
给你一组积木,用 3”×1” 和 4.5”×1” 积木搭建一个面板。
为了结构完整性,块之间的空间不得在相邻行中排列。
7.5”×1”面板有2种方法,7.5”×2”面板有2种方法,12”×3”面板有4种方法,27”有7958种方法“×5”面板。构建 48”×10” 面板有多少种不同的方法?
这是我目前所理解的:
块 3 x 1 和 4.5 x 1
我已经使用组合公式来找到两个块可以排列在这种大小的面板中的所有可能组合
C = 选择 --> C(n, k) = n!/r!(n-r)!一次在 r 处组合 n 组
面板:7.5 x 1 = 2 种方式 -->
1(3 x 1 块)和 1(4.5 x 1 块)--> 仅使用 2 个块--> 2 C 1 = 2 种方式
面板:7.5 x 2 = 2 种方式
我在这里也使用了组合
1(3 x 1 块)和 1(4.5 x 1 块)--> 2 C 1 = 2 种方式
面板:12 x 3 面板 = 2 种方式 -->
2(4.5 x 1 块)和 1(3 x 1 块)--> 3 C 1 = 3 种方式
0(4.5 x 1 块) 和 4(3 x 1 块) --> 4 C 0 = 1 路
3 种方式 + 1 种方式 = 4 种方式
(这就是我感到困惑的地方)
面板 27 x 5 面板 = 7958 种方式
6(4.5 x 1 块) 和 0(3 x 1) --> 6 C 0 = 1 路
4(4.5 x 1 块)和 3(3 x 1 块)--> 7 C 3 = 35 路
2(4.5 x 1 块)和 6(3 x 1 块)--> 8 C 2 = 28 路
0(4.5 x 1 块)和 9(3 x 1 块)--> 9 C 0 = 1 路
1 路 + 35 路 + 28 路 + 1 路 = 65 路
正如您在此处看到的,路数远不及 7958。我在这里做错了什么?
另外,我如何找到构建 48 x 10 面板的方法? 因为手工操作有点困难,尤其是在尝试找到 7958 种方法时。
如何编写程序来计算 7958 面板的路数的答案? 构建一个程序来计算结果会更容易吗?任何帮助将不胜感激。
【问题讨论】:
-
6 票?你开玩笑的吧!很狡猾...
-
@Mitch,除了这一次,提问者实际上表现出了一些努力。他们还没有编写任何代码,因为他们不理解问题陈述,所以他们寻求帮助以理解它。
-
OP,看起来您一次只考虑一行,因此您获得的数字相对较小。碰巧的是,对于一些较小的示例,选择第一行的布局唯一地确定了上面行的布局(通过间距属性),因此您得到了正确的数字。
-
@Matrixfrog:好的,但是有 6 个赞?
-
我不确定为什么“选择”功能适合这个问题,但假设它是正确的,我认为您的计算是制作 27x1 面板的方法数。然后你可以用 65 种方式制作第二层,所以有 65^2 种方式制作 27x2 面板。 除了它们中的一些不起作用,因为它们会将砖块之间的间隔排成一列。
标签: algorithm combinations combinatorics tiling