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

关于随机时间产生算法

  •  
  •   596164296 · 2022-08-13 20:29:19 +08:00 via iPhone · 1561 次点击
    这是一个创建于 593 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前在做一个招标网站,每个标的都是有开始时间与结束时间,只要用户在这个时间段下单即可。 领导要求每个标的的结束时间需要随机提前几百毫秒结束,这个随机过程可以通过标的基础信息推算出来,并且要一般人反推不出来。 我能想到的基础信息包括:标的编号、开始时间、结束时间、标的物金额、标的物数量(一个标的对应多个标的物,多个标的物是一样的)。 小弟才疏学浅,想请教各位大神,如果是您您会怎么做这个随机算法。

    11 条回复    2022-08-14 14:01:18 +08:00
    7zlid
        1
    7zlid  
       2022-08-13 20:35:44 +08:00 via Android
    把你说的那几个变量加盐取 hash
    前三位转十进制除以 4
    xiangyuecn
        2
    xiangyuecn  
       2022-08-13 20:36:51 +08:00
    花里胡哨,直接加一个字段,多存一个结束随机时间🐶 真随机 一点都不作假🐶🐶🐶
    learningman
        3
    learningman  
       2022-08-13 20:37:16 +08:00 via Android
    直接生成随机数不行吗
    kongkx
        4
    kongkx  
       2022-08-13 20:39:52 +08:00 via iPhone
    hash + 取模? 这个随机数有这么讲究吗?
    Jooooooooo
        5
    Jooooooooo  
       2022-08-13 20:49:40 +08:00
    直接用你计算时的当前的毫秒时间就行, 这个足够随机.
    wyx119911
        6
    wyx119911  
       2022-08-13 22:24:37 +08:00
    直接用“标的编号”做下 hash ,再取模到 100 - 900 的范围
    superrichman
        7
    superrichman  
       2022-08-13 22:29:26 +08:00
    这简单,提前 1 秒结束就行。因为还有网络延迟,把延迟考虑进来,到你的服务器上就是随机的几百毫秒了 /doge
    Slurp
        8
    Slurp  
       2022-08-13 22:39:57 +08:00
    hash + 取模。比如 id * 114514 + (end * 5147 - start * 305) + price * 191981 + count * 47297 再 + 100 再 % 721 。跑了点随机数据出来 max 820 min 100 avg 460. 并且数据少的话,波动很大。
    qwertyegg
        9
    qwertyegg  
       2022-08-14 03:13:10 +08:00
    任意的 trapdoor 函数都没法反推

    稍微改一下就实现你功能了
    kevin1
        10
    kevin1  
       2022-08-14 12:01:46 +08:00
    > 这个随机过程可以通过标的基础信息推算出来

    能推算出来的就不叫随机了。
    多取几个字短按照某种规则计算几次就行了吧,反推的难度应该会很高。
    whyhowwhat
        11
    whyhowwhat  
       2022-08-14 14:01:18 +08:00 via iPhone
    找个单向加密算法,随机只是伪需求
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2777 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 12:07 · PVG 20:07 · LAX 05:07 · JFK 08:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.