问题描述
核反应堆中有 α , β \alpha , \beta α,β 两种粒子,每秒内一个 α \alpha α 粒子可以裂变成 3个 β \beta β 粒子,而一个 β \beta β 粒子可以裂变成为 1个 α \alpha α 粒子和两个 β \beta β 粒子。若在 t = 0 t=0 t=0时刻的反应堆中只有一个 α \alpha α 粒子,求在 t t t 秒时反应堆裂变产生的 α \alpha α 粒子数和 β \beta β 粒子数。
推导过程
根据条件 ,设在
t
t
t 时刻,有
a
(
t
)
a(t)
a(t) 个
α
\alpha
α 粒子,有
b
(
t
)
b(t)
b(t) 个
β
\beta
β 粒子
a
(
t
)
=
b
(
t
−
1
)
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
①
b
(
t
)
=
3
a
(
t
−
1
)
+
2
b
(
t
−
1
)
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
②
a(t) = b(t-1) ··························①\\ b(t) = 3a(t-1) + 2b(t-1) ··············②\\
a(t)=b(t−1)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅①b(t)=3a(t−1)+2b(t−1)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅②
由 ① 式可知:
a
(
t
−
1
)
=
b
(
t
−
2
)
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
⋅
③
a(t-1) = b(t-2) ·····································③
a(t−1)=b(t−2)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅③
将 ③ 式代入 ② 可得:
b
(
t
)
=
3
b
(
t
−
2
)
+
2
b
(
t
−
1
)
a
(
t
)
=
b
(
t
−
1
)
b(t) = 3b(t-2) + 2b(t-1) \\ a(t) = b(t-1)
b(t)=3b(t−2)+2b(t−1)a(t)=b(t−1)
初始条件为:
b
(
1
)
=
3
b(1) =3
b(1)=3
程序源代码
#include<stdio.h>
void main(){
int t,k;
long b[100];
printf("请输入t:");
scanf("%d",&t);
b[0] = 0;
b[1] = 3;
for(k = 2; k <= t; k++)
b[k] = 2*b[k-1] + 3*b[k-2]; // 考察点
printf("%d秒时反应堆中的a粒子数为:%ld\n",t,b[t-1]);
printf("%d秒时反应堆中的b粒子数为:%ld",t,b[t]);
}