使用n-1个零件完成零件x

时间:2011-05-01 11:46:34

标签: python algorithm math xor

我在python中构建了一个小模块,它获取了相同大小的字符串/缓冲区列表,并返回相同大小的xor字符串。然后,使用该字符串和n-1字符串,我可以完成丢失的字符串。 它的效果很好,所以我的问题是:

  1. 你知道一个已经制作好的python模块吗?
  2. 有没有办法(实际/理论),我可以使用其他n-2字符串完成2个缺失的字符串:
  3. 假设我有4个字符串:

      

    一个。 “你好”
      湾“视线”
      C。 “知更鸟”
      d。 “约”

    有没有办法建立一个相同大小(或更大)的新字符串,如果我有那个字符串,还有2个字符串,例如'a'和'b'我可以完成'c'和'd “?

2 个答案:

答案 0 :(得分:0)

(1)不太可能有一个已发布的模块。

(2)我认为你的意思是a ^ b ^ c ^ d == e,如果已知b和e的值,你会问c和d的值是否可以恢复(“完成”)。这个问题的答案是否定的 - 你有一个有两个未知数的等式。

更新以回答问题“所以,如果我理解正确的话,没有比我做的XOR更好的解决方案了吗?”

不,我指出使用XOR只能恢复一个丢失的字符串。您可能希望通过网络搜索“纠错码”。

答案 1 :(得分:0)

找到这样的对的算法很简单 - 每个可能的'c'找到匹配的'd'。你会得到很多解决方案。显然你不能得到单对('c','d'),因为那时你可以在两个字符串中切换一位(两者中的相同位)并获得不同的解决方案。