【发布时间】:2008-12-09 23:41:15
【问题描述】:
假设我们有 n 个元素,a1,a2, ...,an,排成一圈。即a2在a1和a3之间,a3在a2和a4,an在an之间>-1 和 a1 等等。
每个元素可以取值 1 或 0。如果有对应的 ai 的值,则两种排列是不同的不同。例如,当 n=3 时,(1, 0, 0) 和 (0, 1, 0) 是不同的排列,即使它们在旋转或反射下可能是同构的。
因为有n个元素,每个元素可以取两个值,所以排列的总数是2n。
问题来了:
可能有多少种排列方式,使得没有两个相邻元素的值都为 1?如果有帮助,请仅考虑 n>3 的情况。
我在这里问有几个原因:
- 这是在我解决编程问题时出现的
- 听起来问题可能受益于布尔逻辑/位算术
- 也许没有封闭的解决方案。
【问题讨论】:
-
澄清一下,圆是相邻的含义的定义——元素 n 与元素 1 相邻——但您不认为相同位模式的旋转是相同。对吗?