主题:这题怎么做,哪位高手帮我一下,谢谢了!
莹萍
[专家分:130] 发布于 2005-08-11 09:38:00
火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定的规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n-l站),都满足此规律。现给出的条件是:共有N个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问从x站开出时车上的人数是多少?
输入:a,n,m和x
输出:从x站开出时车上的人数。
回复列表 (共13个回复)
沙发
moz [专家分:37620] 发布于 2005-08-11 16:09:00
第几站 上车 下车 剩下人数
1 a a
2 i i a+i-i=a
3 i+a i a+i+a-i=2a
4 2i+a i+a 2a+2i+a-i-a=2a+i
5 3i+2a 2i+a 2a+i+3i+2a-2i-a=3a+2i
6 5i+3a 3i+2a 3a+2i+5i+3a-3i-2a=4a+4i
.......
板凳
莹萍 [专家分:130] 发布于 2005-08-11 16:40:00
这个能推算出怎么样的一个规律呢?
3 楼
moz [专家分:37620] 发布于 2005-08-15 13:12:00
1.618
的倍率,
怎么就从来没有人告诉我呢?
4 楼
moz [专家分:37620] 发布于 2005-08-15 13:34:00
首先要求出 i 的值,
然后根据站次计算某站上车的人
某站上车的人有一个倍数关系
某站开出时车上的人数=a-i + (该站次上车的人)
比如第5站上车的人=a-i + 3*i+2*a
3是倍数列的第2个=1.618^2
2是倍数列的第1个=1.618^1
某站上车的人数=1.618^(k-3)*i + 1.618^(k-4)*a
按题意已知a,n,m
即:a - i + i * 1.618^((n-1)-3) + a * 1.618^(((n-1)-4) = m
得:i= ( m - a - a * 1.618^(n-5) )/ ( 1.618^(n-4) -1 )
算得 i 的值后,某站 x 上开车的人数就是
f(x)= a - i + 1.618^(x-3)*i + 1.618^(k-4)*a
问题也就解决了
如果计算需要更精确的就用双精度的倍率 1.6180339887499
试试写出来看对不对?
5 楼
莹萍 [专家分:130] 发布于 2005-08-16 10:56:00
某站上车的人数=1.618^(k-3)*i + 1.618^(k-4)*a
这个K指的是什么啊,为什么要(K-3)*i,(k-4)*a
6 楼
woodsheep [专家分:30] 发布于 2005-08-17 22:59:00
費伯納西(Fibonacci)數列
定義如下,
X0 = 1
X1 = 1
Xn = Xn-1 + Xn-2, if n>1
不能用1.618算,因为不是整数,而且黄金分割是 (sqr(5)-1)/2
1.618只是个近似值。
它的通项是 an=1/√[(1+√5/2) n-(1-√5/2) n](n=1,2,3.....)
希望能帮上忙。
7 楼
moz [专家分:37620] 发布于 2005-08-18 00:57:00
谢谢谢谢,这才是有学问的人嘛,
我哪知道这些学问了
不过看得不太懂,你能不能用 sqr() 来代表开方再写一下?谢谢谢谢。
比如说 1/根号5 =1 / sqr(5)
8 楼
woodsheep [专家分:30] 发布于 2005-08-18 13:40:00
不好意思,那个通项是不清楚,重写如下
An= 1 / ( sqr ( (1+sqr(5)/2)*n-(1-sqr(5)/2)*n ) )
n=1,2,3,4........
9 楼
moz [专家分:37620] 发布于 2005-08-18 15:05:00
不好意思,还是不明白
(1+sqr(5)/2)*n - (1-sqr(5)/2)*n
为什么不可以合并同类项?
= n* (1+sqr(5)/2 - 1+sqr(5)/2)
= n* sqr(5) ??????怎么会这样子的?
10 楼
woodsheep [专家分:30] 发布于 2005-08-18 18:45:00
再次道歉[em12]
两个n都是前面多项式的次数。*号应该为^号。
再次道歉,不好意思。
我来回复