我正在阅读由埃里克松教授发布的关于图论的问题, 这是来自我的母校。其中有一道非常独特的问题涉及到鸽子和它们天生形成的啄食顺序。这个问题如下:
每当一群鸽子聚集在一起时,它们本能地建立了一个等级制度。对于任何一对鸽子,其中一只鸽子总是啄另一只鸽子,将其驱赶离开食物或潜在配偶。同一对鸽子总是选择相同的啄食顺序,即使分开多年,无论周围有什么其他鸽子。令人惊讶的是,整个啄食顺序可以包含循环-例如,鸽子A啄击鸽子B,鸽子B啄击鸽子C,鸽子C啄击鸽子A。
证明任何有限的鸽子集合都可以从左到右排列,以便每只鸽子都啄击其左边的鸽子。
由于这是关于图论的问题,我首先想到的是这是否只是要求关系图的拓扑排序(关系是啄食顺序)。使这个问题更加复杂的是事实上鸽子之间可能存在循环依赖关系。如果我们有一个循环依赖关系,如下所示:
A->B->C->A
其中A啄击B,B啄击C,C反过来啄击A
如果我们按照问题建议的方式表示它,我们会得到以下结果:C B A。
但是上述行排序没有考虑C和A之间的顺序。
我有另一种通过数学归纳解决它的想法,其中基本情况是将两只鸽子按其啄食顺序排列,假设n只鸽子的啄食顺序排列有效,然后证明它对n+1只鸽子也成立。
我不确定我是否走了错误的道路。关于如何分析这个问题的一些见解将会很有帮助。
谢谢。
每当一群鸽子聚集在一起时,它们本能地建立了一个等级制度。对于任何一对鸽子,其中一只鸽子总是啄另一只鸽子,将其驱赶离开食物或潜在配偶。同一对鸽子总是选择相同的啄食顺序,即使分开多年,无论周围有什么其他鸽子。令人惊讶的是,整个啄食顺序可以包含循环-例如,鸽子A啄击鸽子B,鸽子B啄击鸽子C,鸽子C啄击鸽子A。
证明任何有限的鸽子集合都可以从左到右排列,以便每只鸽子都啄击其左边的鸽子。
由于这是关于图论的问题,我首先想到的是这是否只是要求关系图的拓扑排序(关系是啄食顺序)。使这个问题更加复杂的是事实上鸽子之间可能存在循环依赖关系。如果我们有一个循环依赖关系,如下所示:
A->B->C->A
其中A啄击B,B啄击C,C反过来啄击A
如果我们按照问题建议的方式表示它,我们会得到以下结果:C B A。
但是上述行排序没有考虑C和A之间的顺序。
我有另一种通过数学归纳解决它的想法,其中基本情况是将两只鸽子按其啄食顺序排列,假设n只鸽子的啄食顺序排列有效,然后证明它对n+1只鸽子也成立。
我不确定我是否走了错误的道路。关于如何分析这个问题的一些见解将会很有帮助。
谢谢。
C B A
是有效的,B A C
也是有效的,A C B
也是有效的。同样地,如果你有A->B
,A->C
和B->C
,排列鸽子在一排中无法同时传达A->B
和A->C
。但是在这种情况下,C B A
是(唯一的)答案。有趣的问题! 这似乎并不要求C的左边有任何东西,只需要你能够排列鸽子在某一行中,以便每只有另一只在它左边的鸽子都啄食它。所以 - anton.burger