作者mikek (rabbit)
看板ck47th320
标题Re: [问题] 又一个演算法的问题
时间Sat Mar 26 07:29:17 2005
※ 引述《changkh (留学生涯)》之铭言:
: ※ 引述《cabin (牧野流星)》之铭言:
: : 嗯...题目我解释一下, 你看对不对
: : 假设有一个社区要挖井。为了让每一口井平均分配,有以下的规则:
: : 如果只有一口井的话
: : 这口井要在(0, 1)之间。
: : 如果再加一口变成二口井的话
: : 这二口井中的第一口要在(0, 1/2)之间,第二口要在(1/2, 1)之间。
: : 如果二口井再加一口变成三口井的话
: : 这三口井中的第一口要在(0, 1/3)之间,第二口要在(1/3, 2/3)之间,
: : 第三口要在(2/3, 1)之间。
: : 如果总共有 i 口井的话
: : 这 i 口井要在(0, 1/i), (1/i, 2/i), ... ((i-1)/i, 1) 之间。
: : 而每一次挖井时旧的井的位置是不能改变的。
: : 我想题目应该是上面这样才对
: 没错,就是这样子。
: 所以觉得蛮难想的。
Sorry, I can't type Chinese right now.
I hope the solution below is correct. It's just for your information.
Assume there are n wells.
The position d(k) of the k-th well has to satisfy all of the following
conditions:
(k-1)/k < d(k) < k/k which is the valid interval if there are k wells
(k-1)/(k+1) < d(k) < k/(k+1) which is the valid interval if k+1 wells
...
(k-1)/n < d(k) < k/n which is the valid interval if there are n wells
Note that for all wells (i.e. k=1,2,3,...,n), the above inequalities must
hold.
Because (a) the left-hand part of the above inequalities are decreasing
, i.e. (k-1)/k < (k-1)/(k+1) < ... < (k-1)/n,
and (b) the right-hand part are also decreasing
, i.e. k/k < k/(k+1) < ... < k/n,
, we know the above conditions are all satisfied if and only if
(k-1)/k < k/n for all k in {1,2,...,n}.
It is straightforward that (k-1)/k < k/n is equivalent to
n < (k^2)/(k-1), for all k in {1,2,...,n}.
Note that (k^2)/(k-1) is increasing when k>2.
You can verify it by looking at its derivative.
So we only need to check k=1 (n<inf) and k=2 (n<4).
Therefore, the number of wells is at most 3 (n<4).
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 128.2.133.23