分享下阿里鸽子题思路

31个字符要5 bit,题目暗示要考虑数据的安全性,容易想到需要加1bit作奇偶校验位。
我刚开始以为1只代表1字符,可ABC只要3只,剩下5只代表位置信息吗,但这样明显不行,所以想到位置信息和数据信息结合。
比如每只前3位代表位置信息,可以让接收方准备8只笼子,根据前3 bit来归放鸽子。
所有鸽子到齐后,按序每两只的后3位拼接成6bit,翻译成一个符号。
发ABCD时同理,模式变成4+2。

1. 可接收方怎么知道编码模式是3+3还是4+2? 可以根据飞来的鸽子总数来确定,8只就是3+3, 16只就是4+2

2+4:4只,4*4 bit =  2 字符 (余下4bit)
3+3: 8只,3*8 bit = 3 字符 (本应该有4字符,但要留1个作结束符)
4+2:16只,2*16 bit = 5字符 (余下2bit)

2. 为什么3+3要结束符号?
如果接收方暂时只收到8只鸽子,3+3和4+2这两种都有可能,因为另外8只可能在路上,原本发送方只想4+2模式发5字符,结果接收方按3+3解码两次。

3. 怎么区分2+4和3+3?
2+4中最后一只鸽子的后4bit无用,可以全置1,也就是说最后一只就是全1。3+3是不可能出现6bit全1,因为它的结束符号是6bit全0

4. 怎么区分2+4和4+2?
后者余下2bit全置0, 也不可能出现6bit全1

5. 4+2模式下如何确定字符串长度是4还是5?6bit数据信息全0可以代表字符串的结束符,以此控制长度。

这想法可能有许多漏洞,望指正,感谢。
#阿里巴巴##笔试题目#
全部评论

相关推荐

身边的人都在收获,我却还在原地踏步,到底该怎么办啊!每次看到他们的好消息,我都想放弃,心里不停地问自己:到底该怎么才能找到一份工作呢?这种无力感让我想要彻底摆烂,真的很想知道,别人是怎么做到的。有没有人分享一下经历呢?我想学习一下啊走出这样的日子。
鼗:秋招其实是运气>实力的一场竞技游戏,除非实力很强(学历和技术)。大多数人都是半斤八两,看面试官和HR以及简历被曝光的概率罢了,有些时候你可能运气差一点或者说面试官不太友好也或者说你确实准备的不够好之类的,这些都是可能发生的事情。我觉得能做的事情是不比较、不气馁、在面试前多看一点面试的时间冷静一点自信一点,大大方方面试,给自己多一点时间去求职。我这样说不是站着说话不腰疼,我是想说你的offer还在路上,你也值得在这些困难之后得到你较为理想的offer,请你继续加油,保持乐观,积极打败你现在的困难
点赞 评论 收藏
分享
2 1 评论
分享
牛客网
牛客企业服务