我对算法设计有疑问。
假设我在编码器中有 S , R 和 B 这三个比特流,输出为D. br /> 我的问题是如何在解码器中导出 S 或 B ,只有给定的 D 和 R 。
我的初步想法在下面用xor(^)操作, D = 1001 。
Encoder:
S |R |X=S^R |B |D=X^B
0001 |1010 |1011 |0010 |1001
此外,在解码器中,它只接收 D 和 R ,如下所示,
Decoder:
D |R |
1001 |1010 |
但基本上 X = S ^ R 且 X = B ^ D ,因此 S ^ R = B ^ D 或者 > D ^ R = S ^ B 。因此,我不知道如何分别得出 S 和 B 。 是否有人可以提供您已知的概念,思想或算法来处理这个问题 非常感谢:))
答案 0 :(得分:1)
你不能。 D = S ^ B ^ R
,给定D和R,你可以得到S ^ B
(如你所示),但其余信息已经消失。
当然它必须消失:你只有8位,你不能在那里存储12位信息。如果可以,您可以递归地应用该转换,直到您将任意数量的信息压缩为单个字节。
但是,也许你有一些关于S和B的小修,或者它们之间或它们中的一个和R之间有一些有用的关系。如果你有足够的知识,你可能能够重建S和B(例如,如果B = R,那么D = S,所以你知道它们全部。)