V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zzsheng
V2EX  ›  问与答

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

  •  
  •   zzsheng · 2018-05-09 20:58:35 +08:00 · 1536 次点击
    这是一个创建于 2172 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    为了获取数据包,你需要连接到一台 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 数据片段
    

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

    • 如果你用 Mac 系统,Preview 这个应用可能有用。

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

    具体要求如下:

    请提供编译方法,程序请遵守: 压缩: ./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 显示到前端。

    • 注意 goolge calendar 不需要设置成 public

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

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

    6 条回复    2018-05-26 21:09:23 +08:00
    whileFalse
        1
    whileFalse  
       2018-05-10 08:51:15 +08:00
    楼主可以吧问题发到千里码上。
    cfeitong
        2
    cfeitong  
       2018-05-10 19:57:04 +08:00
    第一题大概有 1/3 的数据块 checksum 差了一个 bit,这么简单的 xor 真的可以恢复原始数据吗?
    zzsheng
        3
    zzsheng  
    OP
       2018-05-11 15:09:49 +08:00
    @cfeitong xor 只是用来验证呀
    zzsheng
        4
    zzsheng  
    OP
       2018-05-22 11:15:05 +08:00
    人肉置顶大法!
    penicillus
        5
    penicillus  
       2018-05-25 10:53:07 +08:00
    DATA 部分要怎么解啊,根据什么进行编码😂
    zzsheng
        6
    zzsheng  
    OP
       2018-05-26 21:09:23 +08:00
    @penicillus 说的很清楚了哇
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1136 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 23:40 · PVG 07:40 · LAX 16:40 · JFK 19:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.