关于随机时间产生算法

2022-08-13 20:29:19 +08:00
 596164296

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

1692 次点击
所在节点    程序员
11 条回复
7zlid
2022-08-13 20:35:44 +08:00
把你说的那几个变量加盐取 hash
前三位转十进制除以 4
xiangyuecn
2022-08-13 20:36:51 +08:00
花里胡哨,直接加一个字段,多存一个结束随机时间🐶 真随机 一点都不作假🐶🐶🐶
learningman
2022-08-13 20:37:16 +08:00
直接生成随机数不行吗
kongkx
2022-08-13 20:39:52 +08:00
hash + 取模? 这个随机数有这么讲究吗?
Jooooooooo
2022-08-13 20:49:40 +08:00
直接用你计算时的当前的毫秒时间就行, 这个足够随机.
wyx119911
2022-08-13 22:24:37 +08:00
直接用“标的编号”做下 hash ,再取模到 100 - 900 的范围
superrichman
2022-08-13 22:29:26 +08:00
这简单,提前 1 秒结束就行。因为还有网络延迟,把延迟考虑进来,到你的服务器上就是随机的几百毫秒了 /doge
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
2022-08-14 03:13:10 +08:00
任意的 trapdoor 函数都没法反推

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

能推算出来的就不叫随机了。
多取几个字短按照某种规则计算几次就行了吧,反推的难度应该会很高。
whyhowwhat
2022-08-14 14:01:18 +08:00
找个单向加密算法,随机只是伪需求

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

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

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

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

© 2021 V2EX