文章
2
粉丝
0
获赞
3
访问
231
题目:
题目描述:
海明码是一种具有纠错能力的编码方式。现有一种 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(){
 ...
登录后发布评论
感谢反馈,已更新到题库~
https://noobdream.com/DreamJudge/Issue/page/1981/