1
piloots 2019-12-19 11:01:48 +08:00
没有
|
2
wqzjk393 2019-12-19 11:08:03 +08:00
使用 random 作为 random 种子,然后再套几层 random,这下总公平了吧
|
3
runinhard 2019-12-19 11:10:14 +08:00
楼主是想讨论技术问题还是公平问题
|
4
malthae 2019-12-19 11:13:46 +08:00
LZ 想说程序随机并不是真正的随机
|
5
radiocontroller 2019-12-19 11:15:17 +08:00 2
比暗箱操作公平
|
6
whp1473 2019-12-19 11:15:38 +08:00
Java 中带有一个安全的 Random,采集随机因子生成,可以考虑用那个
|
7
willxiang 2019-12-19 11:16:13 +08:00 11
被抽到的人觉得公平,没抽到的人觉得不公平。
|
8
TomatoYuyuko 2019-12-19 11:16:43 +08:00
没什么不?
|
9
est 2019-12-19 11:17:08 +08:00
其实我觉得抢楼是最公平的。几乎没法作假。
|
10
LZSZ 2019-12-19 11:25:45 +08:00
没人发一份最公平
|
11
Bakumon 2019-12-19 11:30:26 +08:00 1
如果每人的刮刮卡也是随机抽取的,那就是绝对公平的
|
12
marcong95 2019-12-19 11:38:29 +08:00
random.org 如何?
|
13
xiaocongcong 2019-12-19 11:43:59 +08:00
你是没见过领导在台上说 不在场抽奖作废,抽下一位。结果抽到部门领导不在场啪啪啪打脸,差那么几百块奖品吗。而且公司是就是做软件的,硬要去别人网站花 1000 买个抽奖软件。。。。
|
14
zpfhbyx 2019-12-19 11:48:46 +08:00
人少的话 全员红包,最佳领奖啊
|
15
pompeii 2019-12-19 11:49:04 +08:00
具体不公平在哪?
|
16
fuxiaohei 2019-12-19 11:50:35 +08:00
就几十几百个数值,谈啥分布平均。。随意就好
|
18
jojogl 2019-12-19 11:51:22 +08:00
不是有用某个时间点的上证或者别的什么指数来做随机数的么....
这个还不够随机那就比特币上? |
19
tangzh55 2019-12-19 11:53:46 +08:00 1
啥?还有年会,还有奖抽
|
20
grimpil 2019-12-19 12:01:32 +08:00 via Android
抽奖不助手不香么
|
21
arvinsilm 2019-12-19 12:03:41 +08:00
用当天股票开盘、最近一期彩票、当天 PM2.5、气温、风速等等等等,完全规避暗箱操作
|
22
unixeno 2019-12-19 12:08:03 +08:00 via Android
|
23
binux 2019-12-19 12:11:18 +08:00
@xiaocongcong #13 给你一天时间能开发一个比别人网站更好的抽奖软件吗?如果不能,买一个又如何。
|
24
xenme 2019-12-19 12:12:40 +08:00 via iPhone
号码牌按照到场顺序随机拿也可以
|
26
JJstyle 2019-12-19 12:16:53 +08:00 via iPhone
人手一个大奖就公平了
|
27
Mutoo 2019-12-19 12:28:25 +08:00 1
import './utils';
utils.js ------- Math.random = () => 42; // rolled from my dices. |
28
zoffy 2019-12-19 12:38:28 +08:00 21
你们公司的人是有本事预测 Math.random 的结果还是怎么滴?
|
29
wdhwg001 2019-12-19 12:49:17 +08:00 via iPhone
http://random.irb.hr/
可以使用量子随机数发生器。 |
30
chickenJuicer 2019-12-19 13:12:33 +08:00
我觉得楼主需要解释一下什么叫 公平
|
31
shintendo 2019-12-19 13:12:59 +08:00 4
每个员工自己想一个整数,写在 txt 里,压缩包加密码,上传,抽奖时每个人报出密码,现场解压,所有整数加在一起,对总人数取余,得中奖号码(狗头)
|
33
sockpuppet9527 2019-12-19 13:40:04 +08:00 1
可以参考下这篇论文 P. L'Ecuyer, "Maximally Equidistributed Combined Tausworthe Generators", Mathematics of Computation, 65, 213 (1996), 203--213.
有内核工具的 random 是参考这篇文章写的,量足够大的情况下它能保证公平以及范围足够大。 fio 实现 : https://github.com/axboe/fio/blob/master/lib/rand.c |
34
sockpuppet9527 2019-12-19 13:42:34 +08:00
@wqzjk393 #2
你只有保证嵌套的 random 函数每一个 random 函数都是公平的整个 random 函数才算公平。 那么问题回来了,既然已经保证了其中每一个 random 函数都是公平的为什么还需要进行嵌套? |
35
chocotan 2019-12-19 13:45:51 +08:00
实践是检验真理的唯一标准
生成一百万个随机数,看是否是平均分布的 |
36
519718366 2019-12-19 13:52:00 +08:00
公司其他部门 mou 同事:我不管,你们 IT 抽到大奖,就是抽奖程序做手脚。🌚
|
37
whypool 2019-12-19 14:02:26 +08:00
比内定公平
|
38
RBQMT 2019-12-19 14:10:08 +08:00
需要一个集装箱,在里面放若干数量的猫,每个猫上都有号码,然后开始薛定谔吧
|
39
HeyWeGo 2019-12-19 14:13:47 +08:00
|
40
HeyWeGo 2019-12-19 14:15:38 +08:00
要不抽奖前,放一遍上面的视频,讲解下计算机随机的实现?觉得不公平的自己去搞个真随机去~
|
41
missqso 2019-12-19 14:54:50 +08:00
哈哈哈 代码公平 程序正确 。除非用量子力学来生成(目前能够做到的)真随机。不然所有的办法都只是五十步笑百步,程度不同而已。年会就图个乐得了。有同事纠结的话,不如把 random 的种子设置为当天的一些特殊数据,比如与会人数啊之类的。或者干脆大屏直播摇骰子得了
|
42
DelayNoMore 2019-12-19 15:07:44 +08:00 2
公平。就算 random 不是真随机,你拿刮刮卡的时候是真随机就可以了
|
43
rizon 2019-12-19 15:43:59 +08:00
这得看刮刮卡的数字是哪来的,如果数字从 0 或 1 开始按顺序排下来,我觉得是有些尴尬的,所以刮刮卡的数字也是随机的,抽取刮刮卡也是随机的。
简而言之就是避免两头冷门数字,让所有刮刮卡的值尽量集中在热区。 比如你 1000 个人抽奖,那你觉得可能抽到 0 或 1000 吗。。。这不能单纯用概率说话,所以刮刮卡的数字至少应该都集中在 2 位数或 3 位数以上比较好吧。 以上为个人见解,欢迎讨论 |
44
x86 2019-12-19 15:44:46 +08:00
有什么不公平的?
|
45
rizon 2019-12-19 16:00:46 +08:00 2
@rizon #43 当然我说的是怎么让抽奖这件事更加有悬念和刺激,
至于公平则是另一个复杂的问题了, 这世界没有不公平的事情!!!! 这世界没有不公平的事情!!!! 这世界没有不公平的事情!!!! 你的一生,你的命运就是这样分配给你的,你去讨论公平本来就没有意义,在想公平之前,先问一下,谁给你的公平?谁来维护公平,所谓的公平永远都是为了维护弱者权益所产生的概念而已。 强弱是大自然的自然存在,难道这也是不公平的吗?这是大自然的基本法则而已。 让我想起另一件事情,我很小的时候这样想过,你本就是不存在的,只是上帝赋予了灵魂,才产生了你,把一个灵魂装在你的身体里,然后又装在另一个身体里,扔在不同的环境里,这个灵魂便在思考不同的事情,所以大家都是一个灵魂,都是一个人而已,我即众生,众生即我。 当然,我半夜下班骑着自行车回家,看着路上豪车的时候就不这么想了。。。。。。活着,怪累,挺不得劲的 |
46
shintendo 2019-12-19 16:15:23 +08:00 4
被楼上逗笑了
|
47
gloye 2019-12-19 16:18:28 +08:00 via iPhone
加个洗牌算法就行了
|
48
LiuJiang 2019-12-19 16:35:00 +08:00
这不很公平嘛
|
49
xiaocongcong 2019-12-19 16:54:23 +08:00
@binux ????谁说一天的?现在 v2 也和知乎一样喜欢杠了?我都不想喷你,我们公司自己平时都有给客户的抽奖活动,每次放 iphone 抽中概率备注都是 0
|
50
liuxey 2019-12-19 16:59:40 +08:00
想起以前现场用箱子抽奖,不是公司领导就是部门负责人
|
51
tantalu 2019-12-19 17:08:02 +08:00
随机数种子是谁定的?
|
53
yousabuk 2019-12-19 17:44:14 +08:00 via iPhone
都是公平的,真随机假随机都是公平的。
|
54
yangzzzzzzzt1 2019-12-19 17:47:48 +08:00
srand(time(NULL))不就好了
|
55
snw 2019-12-19 18:01:00 +08:00 via Android
我们是用 Excel RAND()按住 F9 来抽的😂
|
56
iamverylovely 2019-12-19 18:04:19 +08:00
```
Math.random=function(){return "楼主中奖"}; //这样公平了吧。 ``` |
57
iamverylovely 2019-12-19 18:05:40 +08:00
## 回复居然不支持 markdown
|
58
wwwe 2019-12-19 18:06:25 +08:00 via Android
|
59
iamverylovely 2019-12-19 18:06:56 +08:00
|
60
tianshilei1992 2019-12-19 18:13:30 +08:00 via iPhone
我还记得我们当时年会的抽奖代码是 PE 现场开投影仪写的😂
|
61
shiny 2019-12-19 18:15:46 +08:00
抽奖现场 code review
|
62
paranoiagu 2019-12-19 18:20:44 +08:00 via Android
random 跳数字是真的,停下来的数字是指定的。以前客户要求的套路。
|
63
SteveAlan 2019-12-19 18:30:52 +08:00 via iPhone
比内定公平
|
64
ZehaiZhang 2019-12-19 18:52:53 +08:00
@tianshilei1992 现场写可还行,我觉得双方心理都平衡了
|
65
JCZ2MkKb5S8ZX9pq 2019-12-19 19:16:22 +08:00 1
楼主可能本来是想讨论 random 函数的随机问题,无奈好多人都歪楼了。
不过我也要歪个楼。 作为一个干过游戏企划的,想提提其它方案。 比如有一个简单的模型,是主持方给出一个选项,比如黑或白,所有玩家站队,立定后揭晓。二分法几次之后出结果,这样既有参与感,也有悬念。 然后尝试在这个模型上做扩展。比如把用户这头的纯随机,变成答题之类的更有参与感和主动性的方式,比如关于公司的问题,然后站队获奖。 又或者把责任转嫁到开奖一方,比如让各部门 leader 做一些简单的比赛,玩家选 leader 站队。当然这样要看公司领导是不是愿意参与和拉得下脸。 当然这里也有如何设计作弊的方法。但抽奖本质上是一种分配,认知上的公平和现场气氛的把握,和各种人情关系和玩家性格习惯,可能都要考虑。 |
66
shuang 2019-12-19 19:43:31 +08:00
不要你觉得,要我觉得,公不公平我说了算!!!
这不是一个技术问题 |
67
ma836323493 2019-12-19 19:45:35 +08:00
取当天温度湿度, 计算 随机
|
68
zqx 2019-12-19 20:01:01 +08:00 via Android
math 库的实现和宿主环境有关,random 通常与设备 cpu 中的时钟有关,在多线程语言中可能存在两个线程的随机种子一样的情况,但 javascript 是单线程的,因此是相对公平的。
|
69
xuanbg 2019-12-19 20:54:21 +08:00
抽出来的号虽然不是真随机,但你拿到什么号却是比珍珠还真的真·随机数呀。事实上根本不需要摇号,抽卡前就直接公开 1-xx 号分别是什么奖都没问题。因为谁也不知道哪张纸片印着这几个号码,公平的很。
|
70
binux 2019-12-20 00:22:37 +08:00 via Android
@xiaocongcong #49 1000 块也就是一天的工资。怎么,你还想半天完成?
|
71
Mutoo 2019-12-20 07:29:26 +08:00
最大的问题上面提到了,Math.random 可以被自定义函数覆盖掉,如果不配合 code review 的话,无法保证公平公正。
|
73
fatpower 2019-12-20 08:53:56 +08:00 1
你们在纠结这个,我司 2 年没年会了,惨淡
|
74
Arrowing 2019-12-20 08:56:39 +08:00 via Android
不要简单地用技术问题来衡量现实问题
|
75
seenthewind 2019-12-20 09:09:02 +08:00
概率上的随机,和数学上的随机是两回事情。
当然年会抽奖随机是不一样的第三件事情。 作为过来人我和你说,我都试过,直接内部开源最好。 |
76
vexjoe 2019-12-20 09:26:51 +08:00
@sockpuppet9527 有不少人都是这个思维,以为粗暴的方法可以"简单"的就解决问题,而没有深入去思考这个问题是不是真的被消灭了,不知道自己只是把问题给延后了或者变得更加复杂难以排查了。
|
77
Eugene1024 2019-12-20 09:32:36 +08:00
使用 random 产生随机数没啥值得质疑的,可能质疑的是你写的代码有缺陷导致每个人中奖率不一样,或则你在程序里故意设计某些人中奖率高
|
78
hoythan 2019-12-20 09:32:42 +08:00
random 是能当场猜出来吗?
|
79
kop1989 2019-12-20 09:36:00 +08:00
严谨一些的话,可以尝试引入一些完全不相干的第三方参数,这个参数最好是无规律变动的。比如当前时间的上证指数,当前的空气质量,某个网站的日活人数,某个话题的百度指数等。
|
80
expkzb 2019-12-20 09:46:38 +08:00
在领取刮刮卡的时候已经是随机了,应该不用担心 random 函数不够随机的问题
|
81
InkStone 2019-12-20 09:51:43 +08:00
@binux 看楼主的意思,也就是一个简单的随机+UI,又没什么额外的业务需求。最大的成本都在 UI 上,我觉得半天都多了。
|
82
blackywkl 2019-12-20 09:56:21 +08:00
javascript 的 Math.random 貌似不是均匀分布的
|
83
Phariel 2019-12-20 10:02:52 +08:00 via iPhone
|
84
xiaocongcong 2019-12-20 10:12:14 +08:00 via iPhone
@binux 您时间可真值钱,像我们这种工资不高时间又多整天上班没什事情干的人真的是很廉价呢
|
85
zxxufo008 2019-12-20 10:26:53 +08:00
为什么我想到了让子弹飞
|
86
Accelerant 2019-12-20 10:31:24 +08:00
RDRAND 了解一下
|
87
atbility 2019-12-20 10:51:32 +08:00
从概率论与统计学角度来看,挺公平的
|
88
sa2501 2019-12-20 10:58:33 +08:00
差不多得了,都用上 Math.random 还不行,你看看人家用 excel 按上下贱抽奖的
|
89
chenyu8674 2019-12-20 11:02:43 +08:00
之前帮行政做了个页面随机切换员工照片,让领导用拍减压大回车来停止,场面效果非常不错
|
90
Owenjia 2019-12-20 11:03:34 +08:00
建议使用 CSPRNG,现在主流浏览器都有对应实现了。
|
92
Kv_se7en 2019-12-20 13:45:59 +08:00
很简单啊,你运行十万次 Math.floor(Math.random() * 10) ,然后统计产生的 1- 10 这是个数字是否分布均匀就可以了。
|
93
mostkia 2019-12-20 14:49:52 +08:00
只要不重号就可以了,怕不随机多嵌套一下,然后加点佐料喽,比如引入时间、鼠标 XY 轴做种子。
|
94
Hyeongo 2019-12-20 15:08:58 +08:00
上家公司是在抽奖箱里抽刮刮卡,后面抽的人箱子里都没奖 了
|
95
whalegao 2019-12-20 17:41:06 +08:00 via iPhone
随机数不一定是均匀分布的 有很多是服从正太分布的
|
96
KentY 2019-12-20 18:59:35 +08:00
至于真伪随机数, 以及分布问题这个网上大把文章. 我想说的是, 你们公司干嘛用程序来做啊?! 年会是集会对吧, 我们也有, 开会, 讲话, 聚餐等. 你们每人有个卡, 每个号码有个副券对应, 放箱子里, 抓阄多好!
而且可以让普通员工上台露面抽奖, 比如 财务之星, 销售大王... 如果都是技术人员, "年度代码提交量最多", "注释最多", "后端王子", "前端皇后"..... 多有意思, 上场抽奖时候还能后面大屏幕播放一些他 /她的有关背景... |
97
songkeys 2019-12-20 22:53:22 +08:00
其实从宇宙大爆炸开始,所有的粒子、物理效应、化学反应都遵循着定律,这个世界就不是随机的了。
即使是你的思考,也只是身体里的一系列化学反应产生了脑神经中的电信号,也是要遵循定律的,可以说也是能预测的。自由意志或许都不存在。楼主提出这个问题,楼下的所有的人进行回复,我打下这一段字……其实都从宇宙大爆炸开始的那一刻决定好了。 |
100
crab 2019-12-21 02:17:06 +08:00
随机公平了。怕的是抽奖界面真随机,但出结果是预先设定的就尴尬了。
|