zoukankan      html  css  js  c++  java
  • 有趣的数学题

    问题

    1、圆周上有n个点,最多能将圆分为多少个部分?选自World Finals 2008, LA 4119的题面。

    解答

    1、解法由清华大学数院WY大神提供。

    设所求为f(n)。称圆周上的点为周点,圆内的点为交点。

    考察第k个点。添加第k个点后,新增k-1条弦,设新增a[k]个交点。观察这k-1条弦中的任意一条,设它与原先已有的弦产生b个交点(即便它通过某两弦的交点,计数无碍,因为过该交点的边中不可能有两条都过第k个点;它与相邻的弦产生0个交点,计数无碍)。这b个交点将该弦分为b+1段,每一段都使圆内部分数+1。所以该弦造成新增b+1部分,这k-1条弦(即第k个点)造成新增Σ(b+1) = a[k] + k-1。

    所以f(n) = f(0) + Σ(a[k] + k - 1) = C(n, 2) + Σa[k]。

    而Σa[k]即为交点数。为了使圆内部分数最多,就要使交点数最多,就要保证每两个交点唯一对应一条弦,所以Σa[k] = C(n, 4)。

    由于圆本身就有一个部分,所以f(0) = 1。

    所以答案为f(n) = C(n, 2) + C(n, 4) + 1 = (n^4 - 6*n^3 + 23*n^2 - 18*n + 24) / 24。

    ------------------------------------------------------------------
    现在的你,在干什么呢?
    你是不是还记得,你说你想成为岩哥那样的人。
  • 相关阅读:
    原创:Qt自定义拖放
    看下最近公司的招聘需求
    leveldb阅读心得
    Relationship between the FIX Protocol's OrdID, ClOrdID, OrigClOrdID?
    Wait Functions
    全局变量与单例模式
    Asynchronous I/O
    QuickFix MsgHandler
    第一个Java程序
    (原創) Function Pointer、Delegate和Function Object (C/C++) (template) (.NET) (C#)
  • 原文地址:https://www.cnblogs.com/plumrain/p/interesting_math_problems.html
Copyright © 2011-2022 走看看