V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yokosovtoex
V2EX  ›  外包

一个简单的算法问题,有接单的么

  •  
  •   yokosovtoex · 2019-12-24 10:24:15 +08:00 · 1457 次点击
    这是一个创建于 1799 天前的主题,其中的信息可能已经有所发展或是发生改变。
    1. 时间:xxxx 年 xx 月 xx 日 xx 时 + xxxx 个小时 + 1-6 中某一个数字 + 八位数字 如:20200520160020588888888
    通过算法加密生成一个 八位数字的 密码;输入这八位数字密码可以反编译出之前输入的信息;

    2.xxxx 年 xx 月 xx 日 xx 时 + 1-7(一周七天某一天) + xx 小时-xx 小时( 05 点到 12 点) + 1-6 中某一个数字 如:2020052016305125
    通过算法加密生成一个 九位数字的 密码;输入这九位数字密码可以反编译出之前输入的信息;

    语言不限
    18 条回复    2019-12-26 18:39:49 +08:00
    Mistwave
        1
    Mistwave  
       2019-12-24 10:42:45 +08:00 via iPhone
    亲亲,没有呢,建议了解一下信源编码定理哦
    yoshiyuki
        2
    yoshiyuki  
       2019-12-24 10:46:33 +08:00
    源数据是 23 位数字,冗余不多,要求无损压缩成 8 位数字,应该是没可能了,换成 8 位 ascii 码就好办一些
    zw1one
        3
    zw1one  
       2019-12-24 10:59:13 +08:00
    亲亲,这边建议数据建个表,来存时间字段和密码字段奥~
    lbyo
        4
    lbyo  
       2019-12-24 11:02:34 +08:00
    亲亲,这边建议搜索一下“简单”的定义呢~
    shyrock
        5
    shyrock  
       2019-12-24 11:04:28 +08:00   ❤️ 1
    有个现成的算法你可以试试看 https://github.com/philipl/pifs
    Sunyanzi
        6
    Sunyanzi  
       2019-12-24 11:06:31 +08:00
    个人觉得 ... 在根本没有能力评估需求的难度时直接就说问题「简单」 ... 真是个讨厌的行为 ...

    这两道题 ... 第一道我可以证明无解 ... 即根本不可能做出来 ... 谁来做都不行 ... 神仙都没辙 ...

    第二道如果年份在上下五百年内我能做 ... 但我收费不便宜 ...
    shyrock
        7
    shyrock  
       2019-12-24 11:13:08 +08:00
    第一题,光是最后 8 位随机数字就已经不可能压缩到比 8 位数字更小了。。。
    第二题,应该可以压缩几位,能否压到 9 位存疑。
    yokosovtoex
        8
    yokosovtoex  
    OP
       2019-12-24 11:15:51 +08:00
    好吧,简单打个引号~~~~~~~~
    shyrock
        9
    shyrock  
       2019-12-24 11:16:27 +08:00
    第二题,总共有 252,483,840 种可能,貌似真能压缩到 9 位。
    ctrl
        10
    ctrl  
       2019-12-24 12:10:31 +08:00
    建议去这个社区发帖试试: https://eleduck.com/
    goobai
        11
    goobai  
       2019-12-24 12:46:06 +08:00 via Android
    nullref
    xcstream
        12
    xcstream  
       2019-12-24 14:14:01 +08:00
    建议 hash +数据库
    jimrok
        13
    jimrok  
       2019-12-24 16:44:46 +08:00
    1.xxxx 年 xx 月 xx 日 xx 时 + xxxx 个小时 + 1-6 中某一个数字 + 八位数字可能的组合已经超过了[0-99999999], 所以不可能有算法。
    2. 按照年在 100 年内,大概有 149990250009600 种可能,也放不进一个 9 位数里。

    最后问一下,放进 8 位数,放进 9 位数是怎么来的?拍脑子吗?为啥不是放进 2 位数里?根据什么给出来的?
    shenqi
        14
    shenqi  
       2019-12-25 09:57:05 +08:00
    我额外增加悬赏 100 块。谁做出来了,顺路发我一下,我来学习学习吹下牛皮。
    TomVista
        15
    TomVista  
       2019-12-25 12:11:16 +08:00 via Android
    @shenqi 在这位的基础上加 50 块,专利记得填我的名字
    zgl263885
        16
    zgl263885  
       2019-12-25 17:05:26 +08:00 via iPhone
    明盘
    raysonlu
        17
    raysonlu  
       2019-12-26 10:37:56 +08:00
    如果包含小写字母就真的简单了
    dallaslu
        18
    dallaslu  
       2019-12-26 18:39:49 +08:00
    第一个应该是无解的。第二个应该很容易。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:39 · PVG 13:39 · LAX 21:39 · JFK 00:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.