最近新出的研发题,感兴趣的盆友来挑战一哈啊 :-)

2018-05-09 20:58:35 +08:00
 zzsheng

前两个是后台开发的挑战题,第三个是前端的挑战题。

一、神秘数据 在这项挑战中,你会拿到一系列数据包,你的任务是解析这些数据包,恢复原始数据,并从中获取信息。

为了获取数据包,你需要连接到一台 TCP 服务器: challenge.yuansuan.cn:7042

该服务器通过以下步骤验证你的身份:

建立连接时,服务器会给你发一个握手包:"Hello, challenger:<id>\n" 你需要向服务器提供你的信息:"IAM:<id>:<email>\n" 如果验证成功,服务器会回复:"SUCCESS!\n" 成功后,服务器开始发送数据包,每个数据包的格式如下:

     0        4        8      12
     +--------+--------+------+=============+
     |SEQUENCE|CHECKSUM|LENGTH| DATA        | 
     +--------+--------+------+=============+ 

  SEQUENCE
     数据包序号(大端序)
  CHECKSUM (校验和) 
     32 位校验和,计算方式如下:首先将序号和数据拼接在一块,然后以 32 位为块,进行迭代异或操作。
     第一次迭代时,将数据包序号与第一块数据进行异或,第二次迭代时,将第二块数据与上次迭代的结果进行异或,以此反复。
     如果 LENGTH 不是 4 的整数倍,需要用 0xAB 填充。
  LENGTH
     数据片段长度(大端序)
  DATA
     长度为 LENGTH 数据片段

当你明白数据的含义的时候,下一步就很清楚了。

二、压缩算法大挑战 在这项挑战中,你会拿到一个文件,而你的任务是设计你的压缩和解压缩方法,让文件的压缩率最高。

具体要求如下:

请提供编译方法,程序请遵守: 压缩: ./your_program — c input_file output_file 解压: ./your_progream — d input_file output_file

这个示例文件在这里:点击下载 我们还会跑另外一个类似的文件来测试你的程序的压缩率,你的得分将根据这两个文件压缩率的平均值(越小越好)来评估,来挑战吧! 请将你的代码发送至 base64(email)=emh1QGxhbWJkYWNhbC5jb20=

三、远算日历 基于 https://fullcalendar.io/写一个同步 google calendar 的 web 应用,输入为 google 账户,将相应的 calendar 显示到前端。

请将你的代码发送至 base64(email)=emh1QGxhbWJkYWNhbC5jb20=

网址链接: http://challenge.yuansuan.cn/

1543 次点击
所在节点    问与答
6 条回复
whileFalse
2018-05-10 08:51:15 +08:00
楼主可以吧问题发到千里码上。
cfeitong
2018-05-10 19:57:04 +08:00
第一题大概有 1/3 的数据块 checksum 差了一个 bit,这么简单的 xor 真的可以恢复原始数据吗?
zzsheng
2018-05-11 15:09:49 +08:00
@cfeitong xor 只是用来验证呀
zzsheng
2018-05-22 11:15:05 +08:00
人肉置顶大法!
penicillus
2018-05-25 10:53:07 +08:00
DATA 部分要怎么解啊,根据什么进行编码😂
zzsheng
2018-05-26 21:09:23 +08:00
@penicillus 说的很清楚了哇

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/453553

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX