大学数学考试题

X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。

一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。

现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90 呢?

本题的要求就是写出这两种初始条件下,60分钟后Y的数目。

这个可以用编程实现。答案是0 和 94371840。
#include <cstdio>
int main()
{
long int X=10, Y=90;
for(int k=1; k<=120; k++)//半分钟一个单位
{
if(k%2==1) Y -= X;//因为X出生半分钟后就要吃Y,尔后没1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X数量即可。
if(k%4==0)Y *= 2;//每2分钟翻倍
if(k%6==0)X *= 2;//每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。
}
printf("%d", Y);
return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-08-23
89-10=79
计算X在60分内分裂数量:60/3=20(次)(10乘?不会算)
计算X每次分裂会吃Y的数量:初始值=10=N
1次 N*2-N
2次 (N*2-N)*2-(N*2-N)
3次 【(N*2-N)*2-(N*2-N)*2】-(N*2-N)*2-(N*2-N)
4次 {【(N*2-N)*2-(N*2-N)*2】-(N*2-N)*2-(N*2-N)}*2-【(N*2-N)*2-(N*2-N)*2】-(N*2-N)*2-(N*2-N)
以此类推,推算出每次会吃掉的Y的数量,Y分裂的总数减去这个数就是60分后剩余的Y的数量拉
计算Y在60分内分裂数量:60/2=30(次)(79乘?不会算)
小学生计算,看看就好本回答被网友采纳
第2个回答  2017-08-17

这个题还是挺有意思的,最后结果是,如果最开始时Y有89个,那么到最后60分钟的时候,没有Y剩余,因为在第39.5分钟的时候,Y就被吃没了,但是当Y最开始有90个的时候,60分钟后Y的个数是94371840个。

至于怎么做的,我是用excel拉了一下,1分钟搞定,但是你要我用笔给你算,不是不可以,是通项公式太难写了。

设t分钟后X的数量记为x(t),且设t为整数,Y的数量记为y(t),且[m]指的是向下取整运算,比如[5/3]=1,[7/2]=3

    首先X肯定是不被吃的,在(t-0.5)分钟时X的数量x(t-0.5)=10*2^[(t-0.5)/3];

    Y的话,周期是2分钟,且每个0.5分钟的时候(如1.5,2.5,3.5)被x吃一个,每个偶数分钟分裂一次。且前1.5分钟Y被X吃了两次,那么有:

    y(1.5)=y(1)-x(1.5)

    y(2)=2*y(1.5)

    y(2.5)=y(2)-x(2)

    y(3)=y(2.5)

    y(3.5)=y(3)-x(3.5)

    y(4)=2*y(3.5)

    于是你可以从y(2.5)到y(4)中找到规律,得到y(4)=2(y(2)-x(2)-x(3.5))

    于是规律就是y(2t)=2(y(2t-2)-x(2t-2)-x(2t-0.5))

    利用差比数列求和即可。

    你要是想要excel的算法,私信我,不想写了

第3个回答  推荐于2017-07-27
有好多是一样的...但不是完全一样....我也是个大学生..我们数学老师就是那样...大学里,其实每个老师都是那样的...本回答被网友采纳
第4个回答  2017-08-18
都在这里了,望采纳
相似回答