计算机组成原理老师给小明出了一道求最小码距的题目,
有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是__
小明知道码距,也知道最小码距的概念。码距是指
信息编码中,两个合法编码对应位上编码不同的位数,比如10101和00110从第1位开始依次有第1位、第4、第5位不同,因此码距为3**,任意组合的码距最小值称为最小码距。
小明想借助计算机帮忙自己算出答案,今后无论老师出何种组合,他都能一键运行答案,于是他开始了最小码距的代码编写。

输入格式:
第一行读入1个整数N(2≤N≤8),代表需要输入的编码个数。第二行输入N个编码(用十六进制表示,编码位数≤8),中间用空格隔开。
输出格式:
1.根据用户输入编码的顺序依次进行比较,每一行两两编码间的码距以及具体
哪几位不一样(最低位为第1位)
输出有两种格式:(1)当码距>0时,需要输出具哪几位不一样(如:0x2 0x1 CD:2,bit:1|2|)(2)当码距=0时,只需要输出前半段(如0x2 0x2 CD:0)2.最后一行数据输出最小码距
3.其他要求:输出所有编码时都需要加前缀0x,如0x0

输入样例:
在这里给出一组输入。例如:

4
0xa9 0xc7 0xdf 0xbe
6
0xa9 0xc7 0xdf 0xbe 0xbe 0x0

输出样例:
在这里给出相应的输出。例如:

0xa9 0xc7 CD:5,bit:2|3|4|6|7|
0xa9 0xdf CD:5,bit:2|3|5|6|7|
0xa9 0xbe CD:4,bit:1|2|3|5|
0xc7 0xdf CD:2,bit:4|5|
0xc7 0xbe CD:5,bit:1|4|5|6|7|
0xdf 0xbe CD:3,bit:1|6|7|
The MinCD is 2
0xa9 0xc7 CD:5,bit:2|3|4|6|7|
0xa9 0xdf CD:5,bit:2|3|5|6|7|
0xa9 0xbe CD:4,bit:1|2|3|5|
0xa9 0xbe CD:4,bit:1|2|3|5|
0xa9 0x0 CD:4,bit:1|4|6|8|
0xc7 0xdf CD:2,bit:4|5|
0xc7 0xbe CD:5,bit:1|4|5|6|7|
0xc7 0xbe CD:5,bit:1|4|5|6|7|
0xc7 0x0 CD:5,bit:1|2|3|7|8|
0xdf 0xbe CD:3,bit:1|6|7|
0xdf 0xbe CD:3,bit:1|6|7|
0xdf 0x0 CD:7,bit:1|2|3|4|5|7|8|
0xbe 0xbe CD:0
0xbe 0x0 CD:6,bit:2|3|4|5|6|8|
0xbe 0x0 CD:6,bit:2|3|4|5|6|8|
The MinCD is 0
  • 方法一:异或
#include<stdio.h>
void f(int a[],int n){int i,j,k,t;int minCode=999,count;int b[8];for(i=0;i<n-1;i++){for(j=i+1;j<n;j++){t=a[i]^a[j];count=0;for(k=1;k<=8;k++){  if(t%2){count++;b[k-1]=k;}else{b[k-1]=0;}t>>=1;}printf("0x%x 0x%x CD:%d",a[i],a[j],count);if(count!=0){printf(",bit:");}for(k=0;k<8;k++){if(b[k]!=0){printf("%d|",b[k]);}}if(count<minCode){minCode=count;} printf("\n");}}printf("The MinCD is %d",minCode);
}
int main(){int n;scanf("%d",&n);int i;int a[n];for(i=0;i<n;i++){scanf("%x",&a[i]);}f(a,n);return 0;
}
  • 方法二:取余
#include<stdio.h>
int main()
{int n;scanf("%d",&n);int a[n];int i,j,k;for(i=0;i<n;i++){scanf("%x",&a[i]);}int b[10];int minCode=999;int count;for(i=0;i<n;i++){for(j=i+1;j<n;j++){int x,y;x=a[i];y=a[j];count=0;for(k=1;k<=8;k++){if(x%2!=y%2){b[count]=k;count++;}x/=2;y/=2;}printf("0x%x 0x%x CD:%d",a[i],a[j],count);if(count!=0){printf(",bit:");}for(k=0;k<count;k++){printf("%d|",b[k]);}printf("\n");if(count<minCode){minCode=count;}}}printf("The MinCD is %d",minCode);return 0;}

求解n个二进制数之间的最小码距相关推荐

  1. 证明最小码距与纠检错图像_最小码距和检错纠错能力关系

    最小码距和检错纠错能力关系 一.码距? 码距就是两个码字 C1 与 C2 之间不同的比特数.如: 1100 与 1010 的码距 为 2;1111 与 0000 的码距为 4 . 一个编码系统的码距就 ...

  2. 求最小码距 (10 分)

    求最小码距 (10 分) 代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 题目描述 计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA ...

  3. 7-3 求最小码距 (10 分)

    计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是__ 小明知道码距,也知道最小码距的概念.码距是指 ...

  4. (7,4)汉明码编码译码及计算最小码距——基于MATLAB编程

    (7,4)汉明码编码译码及计算最小码距--基于MATLAB编程 编码 A=[1 1 1 0; 0 1 1 1; 1 1 0 1] %A 可随便写四个不为0的列向量,是为了生成一致校验矩阵 H=[A e ...

  5. 7-3 求最小码距(完整版) (10 分)

    7-3 求最小码距(完整版) (10 分) 计算机组成原理老师给小明出了一道求最小码距的题目, 有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是__小明 ...

  6. 求最小码距(完整版)

    计算机组成原理老师给小明出了一道求最小码距的题目,有以下由1个字节组成的合法编码集{0xA9,0xC7,0xDF,0xBE},该编码集的最小码距是__ 小明知道码距,也知道最小码距的概念.码距是指信息 ...

  7. 校验码中码距与纠错能力的关系

    纠错编码的基本原理 1.        基本概念 为了方便对差错编码原理进行叙述下面先介绍一些基本术语. 1.        信息码元--指进行差错编码前送入的原始信息编码. 2.        监督 ...

  8. 码距与检错错位数、纠错位数的关系

    码距:任意两个合法编码间不同的二进制位数的最小值.最小码距 0011和0001的码距为1,一位错时无法识别. 码距的计算:两个编码按位异或后1的个数 = 码距 110异或101 = 011 1的个数为 ...

  9. 分组码 码长 码重 码距 最小距离

    分组码定义:将信源的信息序列按照独立的分组进行处理和编码,称为分组码.编码时将每k个信息位分为一组进行独立处理,变换成长度为n(n>k)的二进制码组. 简单实用编码包括奇偶监督码.二维奇偶监督码 ...

最新文章

  1. 计算机生物学杂志,基因组学与应用生物学杂志
  2. 第二阶段小组冲刺第五天总结
  3. 数学图形(1.32) 鸡蛋
  4. boost::hana::string_c用法的测试程序
  5. 实体摘要系统的解释性评测
  6. 织梦网站地图html制作,dedecms织梦制作xml网站地图的方法
  7. 存储数据迁移解决方案
  8. GNSS文件下载网址
  9. 两层板(双面板)如何控制50欧特性阻抗
  10. django自带模块实现翻页功能
  11. 差分隐私的定义、直观理解与基本性质
  12. 计量经济学(stata)笔记1 记录每天的进步
  13. 友价源码怎么样主动提交链接给百度?
  14. 关于微信支付签名错误的一些可能的解决方向
  15. 阿里飞绪: poll 性能回归分析
  16. pubmed文献批量化下载器
  17. 圣诞节的那些事(链接标签+路径)
  18. 魔兽世界服务端centos架设
  19. django官方文档——使用多个数据库
  20. JavaScript中的乘方和开根号的使用方法

热门文章

  1. Centos7安装ElasticSearch6.4
  2. C#控件开发---控件属性编辑器
  3. 国家规定的三级分销违法吗?
  4. 以水稻为例教你如何使用BSA方法进行遗传定位(上篇)
  5. 在线教育学习平台网校系统v2020 html5响应式在线教育培训类企业使用+安装说明
  6. 2021年西式面点师(初级)考试题库及西式面点师(初级)考试试卷
  7. Room cannot verify the data integrity. Looks like you‘ve changed schema but forgot to update the ve
  8. css3属性基本骨架
  9. html内容页上一页下一页,帝国CMS内容页增加内容分页上一页标签功能!
  10. python 数据挖掘_Python数据挖掘框架scikit数据集之iris