使用双射规则对偶数奇偶校验的二进制字符串进行计数

问题描述

问题:

让B = {0,1}。 Bn是具有n位的二进制字符串的集合。将集合En定义为具有n个偶数个1的二进制字符串的集合。请注意,零是偶数,因此具有零1的字符串(即全为0的字符串)的偶数为1。

(a) 显示B ^ 9与E ^ 10之间的双射。解释为什么您的功能是双射的。

(b) 什么是| E ^ 10 |?

我很难找到一个满足集合且是双射的解决方案。我该如何解决这个问题。

与案件有关吗?例如,如果B ^ 9的偶数为1,则加0;如果奇数的整数为B,则加1以获得E ^ 10?

谢谢!

解决方法

(a) E^10 中的每个字符串都以长度为 9 的前缀开头,该前缀也是 B^9 的成员。给定长度为 9 的前缀,最后一位是唯一确定的,因为它要么必须是 0(如果前缀也在 E^9 中)或者它必须是 1(如果前缀不在 E^9 中)。因此,对于 E^10 的每个元素,B^9 中正好有一个元素被唯一映射到。类似地,对于 B^9 中的任何元素,可以通过在 B^9 中的元素末尾添加 0 或 1(选择导致奇偶校验的那个)来唯一地形成 E^10 的元素。此操作 - 附加 0 或 1 以创建奇偶校验 - 将 B^9 的每个元素映射到 E^10 的唯一元素。因为从所有 E^10 到 B^9,以及从所有 B^9 到 E^10 都有一个唯一的映射,所以我们有我们的双射。

(b) 因为B^9和E^10之间存在双射,我们知道|E^10| = |B^9|。但是|B^9| = 2^9,因为对于 B^9 中任何字符串的九个位置中的每一个,我们都可以独立地为该位选择两个值之一。因此,|E^10| = 2^9 也是。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...