假设
- 链路的带宽为
1Mbps
,每个用户需要的带宽为100kbps
。 - 分组交换模式下,一个用户
活跃
的概率为0.1
。
推论
- 电路交换:仅支持
1
M
b
p
s
100
k
b
p
s
=
\frac{1Mbps}{100kbps}=
100kbps1Mbps=
10
个用户。 - 分组交换:35个用户条件下,
11个及以上用户同时活跃的概率为0.0004
,即10个及10个以内用户同时活跃的概率为0.9996
,基本上与电路交换性能相当。
验证推论
数学推导
假设中的模型满足二项分布
,则10个及以内用户同时活跃的概率为:
P
10
个
及
以
内
用
户
同
时
活
跃
=
∑
i
=
0
10
(
C
35
i
∗
0.
1
i
∗
0.
9
35
−
i
)
P_{10个及以内用户同时活跃}=\sum_{i=0}^{10}(C_{35}^i*0.1^i*0.9^{35-i})
P10个及以内用户同时活跃=i=0∑10(C35i∗0.1i∗0.935−i)
11个及以上用户同时活跃的概率为:
P
11
个
及
以
上
用
户
同
时
活
跃
=
∑
i
=
11
35
(
C
35
i
∗
0.
1
i
∗
0.
9
35
−
i
)
P_{11个及以上用户同时活跃}=\sum_{i=11}^{35}(C_{35}^i*0.1^i*0.9^{35-i})
P11个及以上用户同时活跃=i=11∑35(C35i∗0.1i∗0.935−i)
代码验证
为避免阶乘运算
,可由组合数的递推公式
求组合数:
C
n
a
=
C
n
−
1
a
−
1
+
C
n
−
1
a
,
其
中
n
≥
a
≥
1
C_n^a=C_{n-1}^{a-1}+C_{n-1}^a,其中n\ge a\ge1
Cna=Cn−1a−1+Cn−1a,其中n≥a≥1
使用如下代码可以验证推论:
#include <stdio.h>
#include <math.h>
//CombinationSet[n][a]记录组合数C_n_a,避免重复计算
int CombinationSet[36][36] = {0};
//Combination函数采用递归方式求组合数C_n_a
int Combination(int N, int a)
{
if (CombinationSet[N][a] != 0)
return CombinationSet[N][a];
if (a == 0 || a == N)
CombinationSet[N][a] = 1;
else if (a == 1)
CombinationSet[N][a] = N;
else
CombinationSet[N][a] = Combination(N - 1, a - 1) + Combination(N - 1, a); //递归
return CombinationSet[N][a];
}
int main()
{
double Probability = 0;
//11个及以上用户同时活跃的概率为0.0004
for (double i = 11; i <= 35; i += 1)
{
Probability += Combination(35, i) * pow(0.1, i) * pow(0.9, 35 - i);
}
printf("11个及以上用户同时活跃的概率为:%lf。\n", Probability);
Probability = 0;
//10个及以内用户同时活跃的概率为0.9996
for (double i = 0; i <= 10; i += 1)
{
Probability += Combination(35, i) * pow(0.1, i) * pow(0.9, 35 - i);
}
printf("10个及以内用户同时活跃的概率为:%lf。\n", Probability);
return 0;
}
代码运行结果
结论
在相同条件下
,分组交换能够比电路交换支持更多的用户
。