通过率 0% · 提交 0 · 通过 0
旋转位置编码(Rotary Position Embedding,RoPE)通过旋转向量的方式把位置信息编码到查询向量中。给定维度为 d(d 为偶数)的向量 x[0..d-1]、底数 base 和位置 p。向量的维度两两配对:第 i 对(i 从 0 开始,共 d/2 对)由维度 (2i, 2i+1) 组成。每一对的旋转频率为 θ_i = base^(-2i/d),在位置 p 上的旋转角为 α_i = p × θ_i(弧度)。旋转规则(逆时针;每对维度按「偶数下标在前、奇数下标在后」的顺序参与计算):
y[2i] = x[2i] * cos(α_i) - x[2i+1] * sin(α_i)
y[2i+1] = x[2i] * sin(α_i) + x[2i+1] * cos(α_i)请输出旋转后的向量 y,每个分量保留 4 位小数。若某分量四舍五入到 4 位小数后为 0,输出 0.0000(不得输出 -0.0000)。
这类题属于算法机考高频题型中「位置编码 / 数值实现」方向的高频题型,通常考察对「位置编码 / 数值实现」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
第一行三个整数 d base p。第二行 d 个实数(最多两位小数),为 x[0..d-1]。
一行 d 个数,为 y[0..d-1],每个保留 4 位小数,用单个空格分隔。
示例 1
输入示例
4 10000 3 1.00 0.50 -2.00 0.25
输出示例
-1.0606 -0.3539 -2.0066 0.1899
d=4 常规旋转
示例 2
输入示例
4 10000 0 3.14 -1.20 0.00 7.65
输出示例
3.1400 -1.2000 0.0000 7.6500
p=0 时旋转角为 0,输出与输入相同
时间限制 2000 ms · 内存限制 256 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。