抽奖原理 抽奖工具的原理和这个帖子类似,并有一些改动,简单解释下 先通过cloudflare获取开奖时间对应的随机信标,这个信标只有到开奖时间才能获取且唯一 将信标作为随机种子,生成所有开奖时间前的楼层的全排列,随机数生成原理参考这个 从全排列中依次选取初始抽奖楼层到开奖时间前的楼层间,且不是重复评论的楼层(可选功能),直到中奖人数饱和或者楼层队列为空 将中奖楼层从小到大排列并显示
再看这两个帖子 https://www.nodeseek.com/post-5194-1 https://www.nodeseek.com/post-5192-1 12点开奖的都是13楼 按照这个踢楼逻辑,自己试几次完全能摸清楚中奖楼层 这个随机根本不随机
绑定
确实啊,太离谱了
抽奖原理
抽奖工具的原理和这个帖子类似,并有一些改动,简单解释下
先通过cloudflare获取开奖时间对应的随机信标,这个信标只有到开奖时间才能获取且唯一
将信标作为随机种子,生成所有开奖时间前的楼层的全排列,随机数生成原理参考这个
从全排列中依次选取初始抽奖楼层到开奖时间前的楼层间,且不是重复评论的楼层(可选功能),直到中奖人数饱和或者楼层队列为空
将中奖楼层从小到大排列并显示
ERROR,可能是同一时间出奖的问题
对的,同一时间出奖的原因,只要时间错开30s就ok了
我回头改一个version2.0的版本,把帖子id也加入hash计算
再看这两个帖子
https://www.nodeseek.com/post-5194-1
https://www.nodeseek.com/post-5192-1
12点开奖的都是13楼
按照这个踢楼逻辑,自己试几次完全能摸清楚中奖楼层
这个随机根本不随机
@moamc #4 大佬,踢好几次都没踢到我
@酒神 #5
给我➕🍗
@练习生 #6
不能摸清的,因为随机种子只有到开奖时间才能获得,无法提前获得
当时其实也有想过这个缺点,有两个原因没有太在意:
@练习生 #8
加了30个鸡腿,感觉还是有必要改一下的,把帖子id加进去