通过选择圆周上的点将圆分成碎片?

时间:2011-01-16 11:52:21

标签: c algorithm puzzle

在圆圈上, N 在其圆周上选择任意点。用这些 N 点形成的完整图表将圆圈的面积分成许多部分。

沿圆周选择圆点时,圆圈的最大区域数是多少?

示例:

  • 2分=> 2件
  • 4分=> 8件

任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:9)

这称为Moser's circle problem

解决方案是:

alt text

alt text

证明非常简单:

考虑圆圈内的每个交叉点。它必须由两条线的交点定义,每条线有两个点,因此圆内的每个交点在圆周上定义了4组唯一的点。因此,最多有n choose 4个内顶点,显然圆周上有n个顶点。

现在,每个顶点接触多少条边?好吧,它是一个完整的图形,因此外部的每个顶点都会触及n - 1个边缘,当然内部的每个顶点都会触及4个边缘。所以边数由(n(n - 1) + 4(n choose 4))/2给出(我们除以2,否则每个边将被其两个顶点计数两次)。

最后一步是使用欧拉公式计算图表中的面数,即:v - e + f = 1(在我们的例子中Euler characteristic为1)。

求解f给出上面的公式: - )