在任何不同的4个4位字符串和所有2位字符串之间是否存在双射?

时间:2011-03-19 04:49:17

标签: bits bijection

让我举个例子,让我们考虑一下这些字符串: 1000 0101 0111 0000

以及全范围的2位字符串: 00 01 10 11

我想知道是否存在具有逆的函数并且将4个4位字符串映射到2位字符串。

2 个答案:

答案 0 :(得分:0)

从一组n个元素到另一组n个元素的双射数是n!

连续考虑每个目标元素,并选择其匹配的原始元素。 首先,您可以选择n。 对于第二个,您可以选择(n-1)。 ...

你想要一组4个元素之间的双射,因此你有4个! = 24种可能的功能。

00将被映射到其中六个中的1000个(3!),其中六个中的0101等等。

我不确定这会回答你的问题,但这就是我理解它的方式。

答案 1 :(得分:0)

对于4 4位的情况,您有16 ** 4或65536个案例,这将映射到8个2位单元,因此这将是一个微不足道的问题。但是,如果你重申你的问题是每个字节4比特到2比特的所有字符串空间的双射映射,这是一个不同的问题,是的,它有一个解决方案。

一个简单的解决方案是查看每种类型模式的无限奇数二进制字符串空间的映射。无限奇数字符串有一个最后一个距离开始有限的距离你要做的是你开始写位,因为它们看起来你有一个标志如果它的集合你已经完成了最后一个字节(无论你设置的是2位还是4位)你写了一个1000 ...如果标志清楚,你写000 ...因为有一个是扩展中的最后一个“1”。

  • 为2位集
  • 00设置标志
  • 10没有标记
  • 其余的01 11清除旗帜

  • 用于4位集

  • 0000设置标志
  • 1000没有标记
  • 其余全部包含至少1个或多个并清除标记

将1000 0101 0111 0000转换为10,0001010111000010000的直接复印件... 注意尾部100 ..因为标志设置。如果你反向为2位设置了 国旗经历了许多国家,但1000 ...在国旗的结尾部分所以在 2位设置你得到10 00 01 01 01 11 00 00没什么大不了的8字节

但是在转换1000 0101 0111 0100时你会得到1000010101110000 ...... 当看到2位设置时,你会得到10 00 01 01 01 11 10 这是7字节短一个2位单位

对于此双射,从4位设置为2位设置,将始终存在 2n字节用于两个字节的字节或2n-1个字节,其中n个为4位字节。

这种映射到无限奇数文件的方法适用于任何字符串的双射变换 一个无限集合的成员,每个字节的任意数量的字节,即使数量 构成一个字节的位改变了n的函数。