题目1:RSRP信号强度计算
描述
设计一个函数计算移动终端接收的参考信号接收功率(RSRP),公式为:
RSRP = -140 + 10*log10(距离) - 路径损耗系数
输入距离(km)和路径损耗系数(如128),输出RSRP值(保留两位小数)。
分析
需注意单位换算(km转m)和对数计算。
代码
#include
#include
using namespace std;
double calculateRSRP(double distanceKm, double pathLoss) {
double distanceM = distanceKm * 1000;
return -140 + 10 * log10(distanceM) - pathLoss;
}
int main() {
double d, pl;
cin >> d >> pl;
cout << fixed << setprecision(2) << calculateRSRP(d, pl);
return 0;
}
题目2:小区PCI冲突检测
描述
给定3个小区的PCI(物理小区标识,0-503),判断是否存在模3或模6冲突(PCI%3或PCI%6相同)。
分析
遍历所有组合,检查模3和模6是否重复。
代码
#include
#include
bool checkPCIConflict(const vector& pcis) {
unordered_set mod3, mod6;
for (int p : pcis) {
if (mod3.count(p % 3) || mod6.count(p % 6)) return true;
mod3.insert(p % 3);
mod6.insert(p % 6);
}
return false;
}
题目3:5G时隙分配优化
描述
根据下行授权数量(GrantDLNum)和时隙数,计算最大数据传输速率(速率=时隙数×GrantDLNum×100Mbps)。
分析
需处理大数溢出,使用long long
类型。
代码
long long calculateThroughput(int slots, int grantDL) {
return static_cast(slots) * grantDL * 100;
}
题目4:MEC部署决策
描述
根据终端距离(km)选择MEC部署位置(接入/汇聚/核心机房),返回对应时延(1ms/1.5ms/2ms)。
分析
分段判断距离阈值。
代码
string getMECDeploy延迟(int distance) {
if (distance <= 10) return "1ms";
else if (distance <= 50) return "1.5ms";
else return "2ms";
}
题目5:PDSCH误块率统计
描述
输入成功解码块数和总传输块数,计算误块率(BLER=错误块数/总块数×100%,保留两位小数)。
分析
注意浮点数精度处理。
代码
double calculateBLER(int success, int total) {
return (1.0 - success / static_cast(total)) * 100;
}
题目6:PCI生成器
描述
生成满足PCI%3=0且PCI%6=3的合法PCI值列表(0-503)。
分析
通过循环筛选符合条件的PCI。
代码
vector generateValidPCI() {
vector result;
for (int i = 0; i <= 503; ++i)
if (i % 3 == 0 && i % 6 == 3) result.push_back(i);
return result;
}
题目7:信号强度排序
描述
输入多个终端的RSRP值,按降序输出前3强信号。
分析
使用优先队列(最大堆)优化排序。
代码
#include
vector top3RSRP(const vector& rsrpValues) {
priority_queue pq(rsrpValues.begin(), rsrpValues.end());
vector top3;
for (int i = 0; i < 3 && !pq.empty(); ++i) {
top3.push_back(pq.top());
pq.pop();
}
return top3;
}
题目8:小区重选算法
描述
根据邻区信号强度和优先级,选择最优小区(优先级高者优先,同优先级时信号强者胜)。
分析
自定义排序规则。
代码
struct Cell {
int priority;
double rsrp;
};
bool compareCells(const Cell& a, const Cell& b) {
return apriority > bpriority || (apriority == bpriority && a.rsrp > b.rsrp);
}
题目9:帧结构解析
描述
解析10ms帧结构中的时隙分配(1ms/2ms/5ms帧结构),输出总时隙数。
分析
根据帧结构类型计算。
代码
int calculateSlots(int frameStructure) {
switch (frameStructure) {
case 1: return 10;
case 2: return 5;
case 5: return 2;
default: return -1;
}
}
题目10:信令交互模拟
描述
模拟RRC连接建立流程:输入UE发起请求次数,输出成功连接次数(成功率80%)。
分析
使用随机数生成模拟成功率。
代码
#include
int simulateRRCConnection(int requests) {
random_device rd;
mt19937 gen(rd());
uniform_int distribution(1, 100);
int success = 0;
for (int i = 0; i < requests; ++i)
if (distribution(gen) <= 80) ++success;
return success;
}