不确定这是否是正确的渠道......请告知:-)
任务: 告诉我我从您的流中删除的位的原始位置,用于您收到的部分。
其他信息:
这可以解决吗?也许有校验和,综合位置编码......? 我需要多少比特才能绝对肯定地给出答案?
我发现了这个:https://cs.stackexchange.com/questions/2079/determine-missing-number-in-data-stream但是可以删除的数字是唯一的。
答案 0 :(得分:0)
我的直觉是,这是非常可行的。
给定一个n位字符串(稍微多一点),有一个相对有效的解码算法。撇开对手不要丢弃超过3个连续位的要求(可能没有,但算法会更复杂,我不认为这是一个很大的限制)。从字符串中的每个n + 1个位置初始化一个映射到一个删除计数(最初为零)和一个头位置(最初是密钥)。对于每个接收到的位,循环遍历地图。如果头部的下一位与该位匹配,则将其向前移动。否则,增加删除计数。如果删除计数超过10,则从地图中删除此键。一旦只有一个唯一的头位置,解码就完成了。
我猜想,很有可能,均匀的随机字符串效果很好。这种效果的一个手波动的论点是,对于处于不正确位置的每个头部,它以概率1/2获得移除。比方说,比如200比特,应该有足够小的生存概率,大约1000头时间约1000 ^ 11/11!对手的选择,不正确的头部存活的概率可以忽略不计。 (这个论点是手工制作的,因为我做了一堆未经证实和字面上错误的独立假设。)