首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏MatheMagician

    纠错码与魔术(三)——汉明纠错码魔术初步

    本系列前面两篇已经介绍了纠错码的基本原理和在魔术中的应用和一些魔术例子,相关内容请戳: 纠错码与魔术(二)——魔术《矩阵感应》等 纠错码与魔术(一)——纠错码与汉明码简介 在mathematical 扫描二维码 关注更多精彩 纠错码与魔术(二)——魔术《矩阵感应》等 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    79820编辑于 2023-01-30
  • 来自专栏MatheMagician

    纠错码与魔术(四)——汉明纠错码魔术进阶

    在上一篇中,我们介绍了两个汉明纠错码思想构造的魔术,哪两个都是最基本的应用,相关内容请戳: 纠错码与魔术(三)——汉明纠错码魔术初步 纠错码与魔术(二)——魔术《矩阵感应》等 纠错码与魔术(一)—— 纠错码与汉明码简介 而今天是本系列最后一篇,仍然是汉明编码的魔术,但是其使用的巧妙程度和层级要更深,魔术效果也更好。 不过,这里有高达大约7/8的概率能够改变,所以直接随意换,如果没有发现,那就再换一次,圆场一下就好了。 而像一些集合区分类的魔术,就需要隐蔽性,比如质数,点数图案带尖尖,或者是一个特殊的如Si Stebbins序列的前一半的元素,甚至是你手机号的前面7个不同的数位! 扫描二维码 关注更多精彩 纠错码与魔术(三)——汉明纠错码魔术初步 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    79630编辑于 2023-01-30
  • 来自专栏烟草的香味

    纠错码简介

    这个时候, 纠错码出现了. 简单介绍一下, 其中所有有关数学的内容的去掉了, 毕竟太高深, 咱也不懂. 思考 因为计算机传输中只存在0和1, 所以可以简单将其类比为数字. 将每一个4位都转换为7位. 这种方案存在匹配后的值是一个较接近的错误的值么? 据说不会, 涉及到数学领域, 没太懂. 至此, 其实纠错的任务已经接近完成了. 即: 4+5+6+7=22, 校验数字为 2. 当接到45672 这个数字时, 只需要进行简单的计算, 就可以知道数据是否正确. 其中任何一个数字出错, 结果都不会是2. 这种纠错方式被称为: 二维奇偶校验码. ---- 计算机硬盘, 网络通信等都有着纠错码的身影, 它保证了数据的传输可靠. 在TCP的每个包中都存在校验和内容, 若校验出错, 则包会被直接丢弃.

    1.1K30发布于 2020-05-14
  • 来自专栏MatheMagician

    纠错码与魔术(一)——纠错码与汉明码简介

    今天我们来学习编码中一个非常重要的编码类型——纠错码,以及自然地,这种纠错码的思想是如何应用到魔术中的。 通信一般至少需要信源和信宿的一对才能完成,上个通信初步系列中,魔术师是信宿接受信息没什么说的,信源的话,要不就是明目张胆地就是表演者之一(《傅氏幻术》和我的心灵感应),要不就是观众在不经意间当了信源(《3 * 7的感应 这一篇,我们从纠错码的基本原理说起。 此外,还有作为散列函数的循环冗余校验CRC,以及加密散列函数等,而格雷码则是在编码的过程中引入相邻数代码仅有1位不同,使得其自动具有纠错码的功能。 设待传输的信号长度为k位,我们试图寻找一个长度为n的编码,带(n - k)位纠错码,能够保证定位到1位错误以及其位置。

    1.8K30编辑于 2023-01-30
  • 来自专栏用户6811391的专栏

    QR 二维码纠错码(三)

    纠错码可以帮助 QR 读码器检测 QR 二维码中的错误并予以校正。继对文本数据编码后,本篇将继续介绍生成纠错码的过程。 codeword #3) 01000110 (codeword #4) 10000110 (codeword #5) 01010111 (codeword #6) 00100110 (codeword #7) 2^0 = 1 2^1 = 2 2^2 = 4 2^3 = 8 2^4 = 16 2^5 = 32 2^6 = 64 2^7 = 128 QR 二维码说明中指出采用以 100011101 为模的运算( 尽管 QR 二维码总是需要超过 2 个纠错码/块,本篇只展示如何计算 2 个纠错码的过程,因为其它计算过程也是相似的。 第八步:生成纠错码 终于,我们走到了生成纠错码这一环节。

    2.7K21发布于 2020-07-09
  • 来自专栏嵌入式项目开发

    基于纠错码的哈希函数构造方案

    HRHF算法通过结合纠错码与SM3算法的Merkle-Damgård迭代结构,不仅增强了哈希值的随机性,还保证了算法的安全性和执行效率。 HRHF算法结合了纠错码与SM3算法的Merkle-Damgård迭代结构,通过这种方式增强了哈希值的随机性。 计算纠错码的生成矩阵。 对生成矩阵进行循环左移操作以增加随机性。 对输入数据进行迭代压缩操作。 输出最终的256位哈希值。 2], i) + state[3] + ss2[i] + words[i]; tt2[i] = gg(state[4], state[5], state[6], i) + state[7] state[3] = tt1[i]; state[4] = state[5]; state[5] = state[6]; state[6] = state[7]

    24200编辑于 2025-05-27
  • 来自专栏MatheMagician

    纠错码与魔术(二)——魔术《矩阵感应》等

    在本系列前面的文章里,我们已经介绍了纠错码的基本原理和Hamming码的内容,相关内容请戳: 纠错码与魔术(一)——纠错码与汉明码简介 今天我们来具体聊聊纠错码和魔术之间的关系,以及一个经典作品等。 比较神奇的是,纠错码居然可以在信息还没有到来之前就好像完成了这个编码,使得看起来是一种以不变应万变的编码方式,靠发信者自己去暴露自己的信息。 好了,说了这么多,我们来通过真正的魔术案例来说明这些纠错码在魔术上到底是怎么被应用的。 矩阵感应 视频1 矩阵感应 这是一个典型的奇偶校验码,是我在深大的一次沙龙里,Albert老师第一次表演的。 这也是纠错码原理比一般的通信编码的优势,在做出选择以后到完成辨识以前,不再需要托来传递什么信息,信息早就暗含在了纠错码代表的这些隐含关系的成立与破坏中。 扫描二维码 关注更多精彩 纠错码与魔术(一)——纠错码与汉明码简介 破解魔术的秘密(四)——前移原理介绍和案例分享 你真的分得清“前后左右”和“东西南北”吗?

    43730编辑于 2023-01-30
  • 来自专栏用户6811391的专栏

    构建最终编码(四)

    经过生成纠错码环节,目前我们已经拥有了数据编码和其对应的纠错码。最初我们提到过,较大的 QR 二维码需要我们数据码拆成小块,而且针对每一块生成对应的纠错码。 在这种情况下,数据块和纠错码必须根据 QR 二维码规范穿插放置,本篇将解释该过程。 第一步:决定需要多少数据块和纠错码 纠错表展示了每种 QR 二维码版本在不同纠错级别下所需的数据块和纠错码数字。 即先取第一列,再第二列等,最终得到 67,246,182,... ,7,236 对数据码字节排列完,同样的逻辑接着排列纠错码: ? , 87, 118, 50, 194, 38, 134, 7, 6, 85, 242, 118, 151, 194, 7, 134, 50, 119, 38, 87, 16, 50, 86, 38, 236 例子中用到的版本 5 的 QR 二维码,需要在最后添加 7 位 0 的剩余字符。

    56910发布于 2020-07-09
  • 来自专栏用户4480853的专栏

    汉明码的原理及其应用

    public class Test { public static void main(String[] args) { int[] arr = {9,1,2,1,5,3,1,7,5,3,2,1,3,7,9,7,3,7,2,7,3,1,7,2,9,3,7,9,1 eor = 0; for (int i : arr) eor ^= i; System.out.println(eor); //output 7 结论: 纠错码的存在不是 “用一个数据去保护所有数据” 而是 “通过一个数据改变整组数据的奇偶性”,纠错码本身就存在于整组数据中。换而言之,纠错码在保护其他数据的同时,也保护了纠错码自身。 假设验证: 以下数据深色区域为占位纠错码: image.png 经过校验发现修改任何一个位置上的纠错码都能通过奇偶校验发现纠错码出现了错误(红色位置)。 3.1 少量纠错码的优势 使用少量的纠错码对大量的数据就错并不是汉明码最厉害的地方。

    2.1K00编辑于 2022-08-05
  • 来自专栏FreeBuf

    跟我一起学习玩转二维码

    用于标记二维码的矩形大小他的尺寸都是7*7的模块。 ? 在 Version 7以上,需要预留两块3 x 6的区域存放一些版本信息。 数据码和纠错码 除了上述的那些地方,剩下的地方存放 数据码 和纠错码。 182, 70, 85, 246, 230, 247, 70, 66, 247, 118, 134, 7, 119, 86, 87,118, 50, 194, 38, 134, 7, 6, 85, 242 纠错码算法是对所要纠错的内容一个字节一个字节地进行编码,所以编码后生成的是一个字节数组。 7. 将编码后的内容转化为十进制输出 ? 7.

    3K41发布于 2019-06-03
  • 来自专栏程序员互动联盟

    二维码是如何实现的?

    3、纠错编码:按需要将上面的码字序列分块,并根据纠错等级和分块的码字,产生纠错码字,并把纠错码字加入到数据码字序列后面,成为一个新的序列。 在二维码规格和纠错等级确定的情况下,其实它所能容纳的码字总数和纠错码字数也就确定了,比如:版本10,纠错等级时H时,总共能容纳346个码字,其中224个纠错码字。 ,然后对每一块进行计算,得出相应的纠错码字区块,把纠错码字区块 按顺序构成一个序列,添加到原先的数据码字序列后面。 数据和纠错码字:实际保存的二维码信息,和纠错码字(用于修正二维码损坏带来的错误)。 7、格式和版本信息:生成格式和版本信息放入相应区域内。版本7-40都包含了版本信息,没有版本信息的全为0。二维码上两个位置包含了版本信息,它们是冗余的。

    1.2K50发布于 2018-03-15
  • 来自专栏游戏开发之旅

    二维码的生成细节和原理

    数据码和纠错码 除了上述的那些地方,剩下的地方存放 Data Code 数据码 和 Error Correction Code 纠错码。 数据编码 我们先来说说数据编码。 错误修正容量 L水平 7%的字码可被修正 M水平 15%的字码可被修正 Q水平 25%的字码可被修正 H水平 30%的字码可被修正 那么,QR是怎么对数据码加上纠错码的? 就是一个8bits的byte)(再注:最后一例中的(c, k, r )的公式为:c = k + 2 * r,因为后脚注解释了:纠错码的容量小于纠错码的一半) 下图给一个5-Q的示例(因为二进制写起来会让表格太大 ,所以,我都用了十进制,我们可以看到每一块的纠错码有18个codewords,也就是18个8bits的二进制数) 组 块 数据 对每个块的纠错码 1 1 67 85 70 134 87 38 85 194 242 7 38 86 22 198 199 146 6 块 3 182 230 247 119 50 7 118 134 87 38 82 6 134 151 50 7 块 4 70 247 118

    3.6K11发布于 2019-12-03
  • 来自专栏容器云生态

    开源分布式对象存储-MinIO 顶

    为什么纠错码有用 与RAID或复制不同,纠错码可以保护数据不受多个驱动器故障的影响。 比如,在经典的RAID6中可以在损失两块盘的情况下不丢数据,然而在Minio中纠错码可以保证当一般的盘故障时依然不会影响到数据。此外,纠错码在在对象级别,并且每次就可以修复一个对象。 而在Minio内部的设计中采用了高速的HighwayHash校验和来保护Bit Bot Drivers是如何使用纠错码的 MinIO将您提供的驱动器分为4、6、8、10、12、14或16个驱动器的纠错码集 /data7 \ -v /mnt/data8:/data8 \ minio/minio server /data1 /data2 /data3 /data4 /data5 /data6 /data7 一个分布式的Minio集群最小需要4块盘(其实是纠错码要求最小4块)来驱动整个集群,当我们启动分布式集群后,纠错码会自动启动 高可用: 多节点组成的分布式minio可保证服务的高可用(一个N节点的分布式

    4.8K63发布于 2020-02-18
  • 来自专栏magicsoar

    二维码知识介绍

    数据和纠错码:记录了数据信息和相应的纠错码纠错码的存在使得当二维码的数据出现允许范围内的错误时,也可以正确解码。 版本信息       :仅在版本7以上存在,记录具体的版本信息。 数字编码(Numeric)        :可编码0-9,10个数字,如果需要编码的数字的个数不是3的倍数,最后剩下的1或2位数会被转成4或7bits,其它的每3位数字会根据不同版本被编成 10,12, 图5   一些编码方式及其标识 纠错码 二维码存在4个级别的纠错等级,每个纠错级别可修正的错误与标识见图6,纠错级别越高,可以修正的错误就越多,需要的纠错码的数量也变多,相应的可储存的数据就会减少,版本 图7 第二步:进行数据编码 根据图8,版本1下,采用Numeric Mode编码时,每三个数字需要10个bits进行标示 ?                                             BCH纠错码计算为: ?

    4K100发布于 2018-02-06
  • 来自专栏琦小虾的Binary

    二维码生成原理及解析代码

    二维码一共有四种纠错级别: 纠错水平 可被修正容量 L 7% 码字 M 15% 码字 Q 25% 码字 H 30% 码字 二维码对数据码加上纠错码的过程,首先要对数据码进行分组,即分成不同的块(Block 其中组 1 的每个块,都有 11 个数据码, 22 个纠错码;组 2 的每个块,都有 12 个数据码,22 个纠错码。 组 块 数据 每个块的纠错码 1 1 2 67 85 70 134 87 38 85 194 119 50 6 66 7 118 134 242 7 38 86 22 198 199 199 11 比如对于 Version 5 + H 纠错等级的二维码,剩余位需要加 7bits,即加 7 个 0。 示例如下: 假设存在一个 Version 为 7 的二维码(对应 6bits 版本号为 000111),其纠错码为 110010010100; 则版本信息图案中的应填充的数据为:000111110010010100

    9.8K104发布于 2018-01-02
  • 来自专栏系统设计与开发

    分享一个在线二维码生成器(基于qrcode.js开发)

    二维码的生成原理涉及到编码过程和纠错码的生成。以下是基本的步骤: 1.数据编码:首先,需要将需要存储的数据转换为二进制码。 2.生成纠错码:为了提高二维码的识别率,需要为每个字符生成一组纠错码纠错码的作用是检测和修正错误,通常采用的是Reed-Solomon编码。 3.模块排列:将数据和纠错码按照一定的规则排列到二维码矩阵中。具体的排列方式取决于二维码的类型和版本。 QR码支持如下的编码: Numeric mode 数字编码,从0到9。 如果需要编码的数字的个数不是3的倍数,那么,最后剩下的1或2位数会被转成4或7bits,则其它的每3位数字会被编成 10,12,14bits,编成多长还要看二维码的尺寸 Alphanumeric mode

    1K10编辑于 2023-08-30
  • 来自专栏用户6811391的专栏

    QR 二维码布局(五)

    定位模块包含一个最外层的 7x7 码元的黑色正方外边,紧接着内部一个 5x5 码元的白色正方轮廓,最里层一个 3x3 码元的黑色正方区域。 ? 定位模块本身设计完全不同于二维码中其它模式。 如图显示了版本 1 和版本 18 QR 二维码中的定位模块,它们大小相同都是 7*7 码元,位置随着版本尺寸变化而坐标不同但还是位于相应角落。 该 10 位结果即所求的 10 位纠错码。 18 位版本信息中,首 6 位是版本号转化为 6 位二进制结果,剩余 12 位是 6 位版本号对应的 12 位纠错码。 生成过程与格式信息中的纠错码过程类似,不过对应的是 12 位并且最终无需与掩码 XOR 运算。

    2.1K32发布于 2020-07-09
  • 来自专栏小点点

    (三)《数字电子技术基础》——码制

    目录 码制定义 二-十进制码(BCD) 8421-BCD 码 2421-BCD 码 余3码 余3循环码 格雷码 检错码和纠错码 误差检验码 误差纠错码 字符-数字代码 ---- 码制定义 码制:即用数字技术来处理和传输的以二进制形式表示数字 BCD 码 2421-BCD的各位码也有固定的权,因而也是一种有权码; 2421-BCD的位权分别是:2、4、2、1,且其前0-4的编码与8421-BCD码相同; 2421-BCD的0和9、1和8、2和7、 余3码的0和9、1和8、2和7、3和6、4和5也互为反码,即也具有反射特性,这样不仅利于对10求补(具有自补特性),而且做加法时,若两数之和为10,其和正好等于二进制数的16,于是也会从高位自动产生进位信号 误差纠错码 我们一般采用的误差纠错码是汉明码,具体介绍如下所示:          汉明距离——汉明距离是指两个等长字符串对应位置的字符不同的个数,即将一个字符串变换成另外一个字符所需要替换的字符个数 ASCII码一般为八位码,其中第八位是奇偶校验位,其它7位表示信息 好了,码制这一章就先介绍到这里啦! 

    3.9K21编辑于 2022-12-12
  • 来自专栏数据结构和算法

    使用Python实现量子纠错算法:保障量子计算的稳定性

    常见的量子纠错码包括Shor码、Steane码和表面码等。 量子比特(qubits):量子计算的基本单位,量子比特可以处于0和1的叠加态。 纠错码:通过特定的编码方式,将量子比特映射到更高维的Hilbert空间,使得错误可以被检测和纠正。 环境配置与依赖安装 我们将使用Qiskit库进行量子纠错算法的开发。 Shor码是一种经典的量子纠错码,可以纠正单量子比特的任意错误。 1. 构建量子电路 首先,我们需要构建一个量子电路,包括编码、纠错和测量步骤。 qc.cx(3, 6) # 引入噪声:对一个量子比特施加X门 qc.x(0) # 纠错步骤:纠正错误 qc.cx(1, 4) qc.cx(2, 5) qc.cx(3, 6) qc.ccx(4, 5, 7) qc.cx(0, 1) # 引入噪声:对一个量子比特施加X门 qc.x(2) # 纠错步骤:纠正错误 qc.cx(1, 4) qc.cx(2, 5) qc.cx(3, 6) qc.ccx(4, 5, 7)

    40010编辑于 2024-12-25
  • 来自专栏全栈程序员必看

    Webrtc fec 废除_webtec

    FEC是一种前向纠错技术,发送端将负载数据加上一定的冗余纠错码一起发送,接收端根据接收到的纠错码对数据进行差错检测,如果发现差错,则利用纠错码进行纠错。 Protection FEC,直译为非均等保护前向纠错)则是WebRTC实现的FEC方案之一,[本文深入学习ULPFEC的理论基础和实现细节](http://www.jianshu.com/p/06a27ebacec7)

    65430编辑于 2022-09-22
领券