分享下阿里鸽子题思路

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可以代表字符串的结束符,以此控制长度。

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

相关推荐

11-28 17:58
门头沟学院 Java
美团 JAVA开发 n×15.5
牛客786276759号:百度现在晋升很难的 而且云这块的业务没美团好 你看百度股价都跌成啥样了
点赞 评论 收藏
分享
菜菜咪:1. 可以使用简历网站的模版,美观度会更好一点 2. 邮箱可以重新申请一个,或者用qq邮箱的别名,部分hr可能会不喜欢数字邮箱 3. 项目经历最好分点描述,类似的项目很多,可以参考一下别人怎么写的 4. 自我评价可加可不加,技术岗更看重技术。最后,加油,优秀士兵
点赞 评论 收藏
分享
评论
2
1
分享
牛客网
牛客企业服务