计网-ch01-题目与解释

本文详细讨论了分组交换中的统计多路复用,对比了它与TDM的区别,并通过计算示例分析了在不同场景下,包括单一交换机、多用户共享链路及不同链路速率情况下的端到端时延和吞吐量。同时,探讨了分组到达和排队时延的平均值计算方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

复习题:

1.12 为什么说分组交换应用了统计多路复用?将统计多路复用与TDM中使用的多路复用技术进行对比。

1.13 假定在发送主机和接收主机间只有一个分组交换机。发送主机和交换机间以及交换机和接收主机间的传输速率分别是R1和R2.架设该交换机使用存储转发分组交换方式,发送一个长度为L的分组的端到端总时延是什么(忽略排队时延、传播时延和处理时延)
ANS:LR1+LR2

1.15 假定用户共享一条2Mbps的链路。同时假定每个用户持续以1 Mbps速率传输,但每个用户仅有20%的时间在传输。
a.当使用电路交换时,能够支持多少用户?
b. 对于下面的问题,假定使用分组交换。为什么如果两个以下的用户同时传输的话,链路前面基本上没有排队时延?为什么如果3个用户同时传输的话,将有排队时延?
c. 求某指定用户传输的概率
假定现在有3个用户。求出在任何给定时刻,所有3个用户在同时传输的概率。求出排队增长的时间比率。
ANS:
a. 当使用电路交换时,信道带宽需要用户独占,最多只能支持2个用户。
b. 因为2Mbps链路仅能容纳两个或更少的用户同时以1Mbps连续传输时,这时统计上会有资源富余,而当3个用户同时传输时,统计上便会出现供不应求的现象,导致排队时延。
c. 每个用户仅可能有20%的时间在传输,因此正在传输的概率是p=0.2。
d. 其中传输概率由二项式公式决定:pn(1p)3n,其中n≤3为传输用户数。当n=3时,上式=0.23(10.2)33=0.008。因为仅当n=3时排队才会增长,因此排队增长的时间比率也为0.008。

1.19 假定主机A要向主机B发送一个大文件。从主机A到主机B的路径上有3段链路,其速率分别为R1=500kbps,

### 解决方案 以下是基于问题描述以及引用内容设的一个完整的 C++ 实现解决方案: #### 思路解析 程序的核心逻辑在于统输入字符串中 G、P、L 和 T 字符的数量(不区分大小写),并按照 GPLT 的固定顺序依次输出这些字符,直至所有符合条件的字符被完全输出。 具体实现步骤如下: 1. 使用一个哈希表(`unordered_map` 或 `map`)来记录 G、P、L 和 T 出现的次数。 2. 遍历输入字符串中的每个字符,将其转换为大写字母后判断是否属于目标集合 {G, P, L, T}。如果属于,则更新对应数值。 3. 循环按照 GPLT 的顺序尝试输出字符,每次只输出当前仍有剩余数量的目标字符,直到所有字符均已被处理完毕。 --- #### 完整代码实现 ```cpp #include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { string input; cin >> input; unordered_map<char, int> countMap; // 记录 'G', 'P', 'L', 'T' 的出现次数 for (char ch : input) { char upperCh = toupper(ch); // 转换为大写形式 if (upperCh == 'G' || upperCh == 'P' || upperCh == 'L' || upperCh == 'T') { countMap[upperCh]++; } } string order = "GPLT"; // 输出顺序 while (countMap['G'] > 0 || countMap['P'] > 0 || countMap['L'] > 0 || countMap['T'] > 0) { for (char ch : order) { if (countMap[ch] > 0) { // 如果还有未输出的字符 cout << ch; countMap[ch]--; } } } return 0; } ``` --- #### 关键点说明 1. **数据结构的选择** 使用 `unordered_map` 来存储字符及其对应的频率可以提高查找效率[^1]。由于本题涉及的数据量较小(最多 10000 个字符),因此性能差异并不显著,但推荐使用更高效的容器以适应更大规模的应用场景。 2. **循环终止条件** 当且仅当所有的 G、P、L 和 T 均已耗尽时退出外层循环。通过检查四个字符各自的数器即可完成这一判定过程[^2]。 3. **字符标准化** 利用标准库函数 `toupper()` 将任意字母统一转化为其大写形式以便于后续比较操作[^3]。 4. **时间复杂度分析** 整体算法的时间复杂度主要取决于两个部分:一是初始化阶段对整个输入串的一次扫描 O(n),二是实际构建结果序列的过程也近似线性关系 O(m),其中 m 表示最终有效字符总数。综合来看,整体表现良好适合题目设定范围内的算需求[^4]。 --- ###
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值