当前位置: 首页 > article >正文

格雷码.

格雷码 - OI Wiki

格雷码_百度百科

简介

格雷码(Gray Code),又称为二进制格雷码或循环二进制码,是一种二进制编码方式。它得名于贝尔实验室的工程师弗兰克·格雷(Frank Gray),他于1940年代提出了这种编码方式,并在1953年获得了相关专利“Pulse Code Communication”。格雷码在数字系统、通信、模拟-数字转换和位置-数字转换等领域有广泛应用。

码表

十进制数

4位自然二进制码

4位典型格雷码

十进制余三格雷码

十进制空六格雷码

十进制跳六格雷码

步进码

0

0000

0000

0010

0000

0000

00000

1

0001

0001

0110

0001

0001

00001

2

0010

0011

0111

0011

0011

00011

3

0011

0010

0101

0010

0010

00111

4

0100

0110

0100

0110

0110

01111

5

0101

0111

1100

1110

0111

11111

6

0110

0101

1101

1010

0101

11110

7

0111

0100

1111

1011

0100

11100

8

1000

1100

1110

1001

1100

11000

9

1001

1101

1010

1000

1000

10000

10

1010

1111

----

----

----

----

11

1011

1110

----

----

----

----

12

1100

1010

----

----

----

----

13

1101

1011

----

----

----

----

14

1110

1001

----

----

----

----

15

1111

1000

----

----

----

----

构造方式

格雷码有很多构造方式,在这里介绍一下“镜像构造”这种方式。

格雷码的镜像构造方式是一种通过递归生成格雷码的方法。其核心思想是利用前一个格雷码序列的镜像对称性来生成下一个格雷码序列。具体步骤如下:

1. 基础情况
  • 当 n=1 时,格雷码序列为:

            G1=[0,1]
2. 递归步骤
  • 假设已经生成了 n−1 位的格雷码序列 Gn−1,则 n 位的格雷码序列 Gn​ 可以通过以下方式生成:

    1. 复制:将 Gn−1​ 复制一份,作为 Gn​ 的前半部分。

    2. 镜像:将 Gn−1​ 反转,作为 Gn 的后半部分。

    3. 前缀添加:在前半部分的每个码字前添加 0,在后半部分的每个码字前添加 1

3. 示例
  • 1位格雷码

    G1=[0,1]G1​=[0,1]
  • 2位格雷码

    G2=[00,01,11,10]G2​=[00,01,11,10]
  • 3位格雷码

    G3=[000,001,011,010,110,111,101,100]G3​=[000,001,011,010,110,111,101,100]
4. 总结

 镜像构造方式通过递归和镜像对称性,能够高效地生成任意位数的格雷码序列。这种方法不仅简单直观,而且保证了相邻码字之间只有一位不同,符合格雷码的特性。 

相关文章:

格雷码.

格雷码 - OI Wiki 格雷码_百度百科 简介 格雷码(Gray Code),又称为二进制格雷码或循环二进制码,是一种二进制编码方式。它得名于贝尔实验室的工程师弗兰克格雷(Frank Gray),他于1940年代提出…...

【毕业论文格式】word分页符后的标题段前间距消失

文章目录 【问题描述】 分页符之后的段落开头,明明设置了标题有段前段后间距,但是没有显示间距: 【解决办法】 选中标题,选择边框 3. 选择段前间距,1~31磅的一个数 结果...

kubernetes对于一个nginx服务的增删改查

1、创建 Nginx 服务 1.1、创建 Deployment Deployment 用于管理 Pod 副本和更新策略。 方式一:命令式创建 kubectl create deployment nginx-deployment --imagenginx:latest --replicas3 --port80--replicas3:指定副本数为 3 --port80:容…...

PackageManagerService

首语 PackageManagerService(以下简称PMS)是Android最核心的系统服务之一,它是应用程序包管理服务,管理手机上所有的应用程序,包括应用程序的安装、卸载、更新、应用信息的查询、应用程序的禁用和启用等。 职责 在Android系统启动过程中扫…...

【蓝桥杯每日一题】3.16

🏝️专栏: 【蓝桥杯备篇】 🌅主页: f狐o狸x 目录 3.9 高精度算法 一、高精度加法 题目链接: 题目描述: 解题思路: 解题代码: 二、高精度减法 题目链接: 题目描述&…...

2.7 滑动窗口专题:串联所有单词的子串

LeetCode 30. 串联所有单词的子串算法对比分析 1. 题目链接 LeetCode 30. 串联所有单词的子串 2. 题目描述 给定一个字符串 s 和一个字符串数组 words,words 中所有单词长度相同。要求找到 s 中所有起始索引,使得从该位置开始的连续子串包含 words 中所…...

电脑实用小工具--VMware常用功能简介

一、创建、编辑虚拟机 1.1 创建新的虚拟机 详见文章新创建虚拟机流程 1.2 编辑虚拟机 创建完成后,点击编辑虚拟机设置,可对虚拟机内存、处理器、硬盘等各再次进行编辑设置。 二、虚拟机开关机 2.1 打开虚拟机 虚拟机创建成功后,点击…...

为训练大模型而努力-分享2W多张卡通头像的图片

最近我一直在研究AI大模型相关的内容,想着从现在开始慢慢收集各种各样的图片,万一以后需要训练大模型的时候可以用到,或者自己以后也许会需要。于是决定慢慢收集这些图片,为未来的学习和训练大模型做一些铺垫,哈哈。 …...

从零开始学习机器人---如何高效学习机械原理

如何高效学习机械原理 1. 理解课程的核心概念2. 结合图形和模型学习3. 掌握公式和计算方法4. 理论与实践相结合5. 总结和复习6. 保持好奇心和探索精神 总结 机械原理是一门理论性和实践性都很强的课程,涉及到机械系统的运动、动力传递、机构设计等内容。快速学习机械…...

JVM 垃圾回收器的选择

一:jvm性能指标吞吐量以及用户停顿时间解释。 二:垃圾回收器的选择。 三:垃圾回收器在jvm中的配置。 四:jvm中常用的gc算法。 一:jvm性能指标吞吐量以及用户停顿时间解释。 在 JVM 调优和垃圾回收器选择中&#xff0…...

使用GPTQ量化Llama-3-8B大模型

使用GPTQ量化8B生成式语言模型 服务器配置:4*3090 描述:使用四张3090,分别进行单卡量化,多卡量化。并使用SGLang部署量化后的模型,使用GPTQ量化 原来的模型精度为FP16,量化为4bit 首先下载gptqmodel量化…...

2025-03-16 学习记录--C/C++-PTA 习题4-2 求幂级数展开的部分和

合抱之木,生于毫末;九层之台,起于累土;千里之行,始于足下。💪🏻 一、题目描述 ⭐️ 习题4-2 求幂级数展开的部分和 已知函数e^x可以展开为幂级数1xx^2/2!x^3/3!⋯x^k/k!⋯。现给定一个实数x&a…...

【C#】Http请求设置接收不安全的证书

在进行HTTP请求时&#xff0c;出现以下报错&#xff0c;可设置接收不安全证书跳过证书验证&#xff0c;建议仅测试环境设置&#xff0c;生产环境可能会造成系统漏洞 /// <summary> /// HttpGet请求方法 /// </summary> /// <param name"requestUrl"&…...

从PDF文件中提取数据

笔记 import pdfplumber # 打开PDF文件 with pdfplumber.open(数学公式.pdf) as pdf:for i in pdf.pages: # 遍历页print(i.extract_text()) # extract_text()方法提取内容print(f---------第{i.page_number}页结束---------)...

【k8s001】K8s架构浅析

Kubernetes 架构浅析 #mermaid-svg-irCZnQUuietSX3Ro {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-irCZnQUuietSX3Ro .error-icon{fill:#552222;}#mermaid-svg-irCZnQUuietSX3Ro .error-text{fill:#552222;stroke…...

NPU、边缘计算与算力都是什么啊?

考虑到灵活性和经济性&#xff0c;公司购置一台边缘计算机&#xff0c;正在尝试将PCGPU的计算机视觉项目转到边缘计算机NPU上。本文简单整理了三个概念&#xff0c;并试图将其做个概要的说明。 一、算力&#xff1a;数字世界的“基础能源” 1.1 算力是什么 **算力&#xff08…...

AP AR

混淆矩阵 真实值正例真实值负例预测值正例TPFP预测值负例FNTN &#xff08;根据阈值预测&#xff09; P精确度计算&#xff1a;TP/(TPFP) R召回率计算&#xff1a;TP/(TPFN) AP 综合考虑P R 根据不同的阈值计算出不同的PR组合&#xff0c; 画出PR曲线&#xff0c;计算曲线…...

Leetcode-1278.Palindrome Partitioning III [C++][Java]

目录 一、题目描述 二、解题思路 【C】 【Java】 Leetcode-1278.Palindrome Partitioning IIIhttps://leetcode.com/problems/palindrome-partitioning-iii/description/1278. 分割回文串 III - 力扣&#xff08;LeetCode&#xff09;1278. 分割回文串 III - 给你一个由小写…...

Java集合 - ArrayList

ArrayList 是 Java 集合框架中最常用的动态数组实现类&#xff0c;位于 java.util 包中。它基于数组实现&#xff0c;支持动态扩容和随机访问。 1. 特点 动态数组&#xff1a;ArrayList 的底层是一个数组&#xff0c;可以根据需要动态扩展容量。 有序&#xff1a;元素按照插入…...

C++特性——智能指针

为什么需要智能指针 对于定义的局部变量&#xff0c;当作用域结束之后&#xff0c;就会自动回收&#xff0c;这没有什么问题。 当时用new delete的时候&#xff0c;就是动态分配对象的时候&#xff0c;如果new了一个变量&#xff0c;但却没有delete&#xff0c;这会造成内存泄…...

ctf web入门知识合集

文章目录 01做题思路02信息泄露及利用robots.txt.git文件泄露dirsearch ctfshow做题记录信息搜集web1web2web3web4web5web6web7web8SVN泄露与 Git泄露的区别web9web10 php的基础概念php的基础语法1. PHP 基本语法结构2. PHP 变量3.输出数据4.数组5.超全局变量6.文件操作 php的命…...

DeepSeek:技术教育领域的AI变革者——从理论到实践的全面解析

一、技术教育为何需要DeepSeek&#xff1f; 在数字化转型的浪潮下&#xff0c;技术教育面临着知识更新快、实践门槛高、个性化需求强三大核心挑战。传统的教学模式难以满足开发者快速掌握前沿技术、构建复杂系统能力的需求。DeepSeek作为国产开源大模型的代表&#xff0c;凭借…...

MySQL-存储过程和自定义函数

存储过程 存储过程&#xff0c;一组预编译的 SQL 语句和流程控制语句&#xff0c;被命名并存储在数据库中。存储过程可以用来封装复杂的数据库操作逻辑&#xff0c;并在需要时进行调用。 使用存储过程 创建存储过程 create procedure 存储过程名() begin存储过程的逻辑代码&…...

图——表示与遍历

图的两种主要表示方法 图有两种常用的表示方法&#xff0c;一种是邻接表法&#xff08;adjacency-list&#xff09;&#xff0c;另一种是邻接矩阵法&#xff08;adjacency-matrix&#xff09;。 邻接表法储存数据更紧凑&#xff0c;适合稀疏的图&#xff08;sparse graphs&am…...

新手村:数据预处理-异常值检测方法

机器学习中异常值检测方法 一、前置条件 知识领域要求编程基础Python基础&#xff08;变量、循环、函数&#xff09;、Jupyter Notebook或PyCharm使用。统计学基础理解均值、中位数、标准差、四分位数、正态分布、Z-score等概念。机器学习基础熟悉监督/无监督学习、分类、聚类…...

电磁兼容性|电子设备(EMC)测试与系统化整改

在现代电子工程领域&#xff0c;5G通信、物联网与人工智能技术深度融合&#xff0c;电磁兼容性&#xff08;EMC&#xff09;已成为衡量设备可靠性的关键指标。据国际电磁兼容协会&#xff08;IEEE EMC Society&#xff09;2024年度报告显示&#xff0c;全球因EMC问题导致的电子…...

联合体定义与应用

引言 讲到了结构体,那同时类似的结构就还有联合体,本文就将详解介绍联合体。 在C语言中,联合体(union)是一种特殊的数据结构,它与结构体(struct)相似,但有一个显著的不同:联合体的所有成员共用同一块内存空间。这意味着在任何时候,联合体中只能有一个成员保存有效数…...

ChatGPT-4

第一章&#xff1a;ChatGPT-4的技术背景与核心架构 1.1 生成式AI的发展脉络 生成式人工智能&#xff08;Generative AI&#xff09;的演进历程可追溯至20世纪50年代的早期自然语言处理研究。从基于规则的ELIZA系统到统计语言模型&#xff0c;再到深度学习的革命性突破&#x…...

C语言_数据结构总结9:树的基础知识介绍

1. 树的基本术语 - 祖先&#xff1a;考虑结点K&#xff0c;从根A到结点K的唯一路径上的所有其它结点&#xff0c;称为结点K的祖先。 - 子孙&#xff1a;结点B是结点K的祖先&#xff0c;结点K是B的子孙。结点B的子孙包括&#xff1a;E,F,K,L。 - 双亲&#xff1a;路径上…...

基于ydoVr算法的车辆智能防盗系统的设计与实现

标题:基于ydoVr算法的车辆智能防盗系统的设计与实现 内容:1.摘要 随着汽车保有量的不断增加&#xff0c;车辆被盗问题日益严重&#xff0c;给车主带来了巨大的经济损失。为解决这一问题&#xff0c;本文旨在设计并实现基于ydoVr算法的车辆智能防盗系统。该系统综合运用传感器技…...