文章

2

粉丝

0

获赞

3

访问

231

头像
海明码模拟-西电25机试还原
学习交流
发布于2026年3月14日 20:28
阅读数 141

题目:

题目还原:海明码纠错与数据提取

题目描述:

海明码是一种具有纠错能力的编码方式。现有一种 11 位的海明码,其中包含 7 位数据位($D_1$ 到 $D_7$)和 4 位校验位($P_1, P_2, P_3, P_4$)。

它们在 11 位传输码中的排列位置如下(下标表示在传输码中的位置):

  • 位置 1:$P_1$

  • 位置 2:$P_2$

  • 位置 3:$D_1$

  • 位置 4:$P_3$

  • 位置 5:$D_2$

  • 位置 6:$D_3$

  • 位置 7:$D_4$

  • 位置 8:$P_4$

  • 位置 9:$D_5$

  • 位置 10:$D_6$

  • 位置 11:$D_7$

纠错规则:

定义四个指征位 $G_1, G_2, G_3, G_4$,其计算方式为对应小组的异或和(或奇偶校验结果):

  • $G_1$ 校验位置:1, 3, 5, 7, 9, 11

  • $G_2$ 校验位置:2, 3, 6, 7, 10, 11

  • $G_3$ 校验位置:4, 5, 6, 7

  • $G_4$ 校验位置:8, 9, 10, 11

若指征位组合形成的二进制数 $G_4G_3G_2G_1$ 为 k,且 k不为0,则表示第 k 位发生了错误,需将其翻转(0 变 1,1 变 0)。若 k=0则无错。

输入要求:

多组数据输入。每行输入一个十进制正整数 $N$(保证 $N$ 转换为二进制后不超过 11 位)。

输出要求:

对于每组输入,输出纠错后原始的 7 位数据位(按 $D_1D_2D_3D_4D_5D_6D_7$ 顺序拼接),以二进制字符串形式输出。

输入样例:

1024

输出样例:

0000000

自己写的题解:【题目是输入回忆版和网上资料的信息给某mini让它仿照N诺样式还原的】

//海明码
#include<bits/stdc++.h>
using namespace std;
int main(){
  ...

登录查看完整内容


登录后发布评论

2 条评论
admin
2026年3月15日 12:10

感谢反馈,已更新到题库~

https://noobdream.com/DreamJudge/Issue/page/1981/

赞(1)

ggyh99 : 回复 admin: 原来各个学校的真题有些是这么来的?哈哈哈哈,谢谢!

2026年3月15日 19:45
回复给: