我正在寻找有关为什么有这个问题的偶数解决方案的指导:
一个古怪的人拥有自己的个人野生动物,包括熊,狮子,老虎,大象,狼獾,犀牛和野狗。这7只动物构成了他的危险动物集合,被安置在7排成排的动物笔中,最左边的笔是1号,最右边的笔是7号。其中一些动物互相激动,因此该男子决定将下列动物分开:
熊和狼獾 - 犀牛和野狗 - 狮子和老虎 - 熊和大象 - 大象和野狗 - 大象和熊如果两只动物不相邻,即它们之间还有另一支笔,则它们是分开的。所有动物必须放在不同的笔中。
我想知道为什么总会有这个问题的偶数解决方案?根据我的理解,约束问题通过对称获得效率 - 即只要对称完成以获得不同的解决方案,您就可以轻松地在笔中交换动物。但是我不太明白,如果有人能提供更清楚的解释,那将会非常有帮助。先感谢您。
答案 0 :(得分:0)
您需要更精确地定义“解决方案的数量”。比方说,你有N个解决方案,将熊分配给最左边(或第一个)笔。通过左右颠倒(将熊分配给最后一支笔),您可获得两倍的解决方案。两倍的数量总是可以被两个整除。
答案 1 :(得分:0)
因为你只提供两对(大象和熊+熊和大象)。也就是说你要么在代码中排除其他对,要么添加额外的约束不可预测。提供所有这些或编写正确的代码,不会排除每对中相反的代码。