抽奖程序是说 “开始” 的时候就已经知道中奖者了吗? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hanzichi

抽奖程序是说 “开始” 的时候就已经知道中奖者了吗?

  •  
  •   hanzichi 2016 年 12 月 21 日 9225 次点击
    这是一个创建于 3411 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天和同事聊到抽奖的话题,同事说抽奖程序是说 “开始” 的时候就已经 random 出了中奖者,之后的效果和喊停都是 “假象”。我们表示质疑,他表示我们没做过抽奖程序。

    这是真的吗?
    第 1 条附言    2016 年 12 月 21 日
    可能是我没表达清楚,我的前提是程序公正,并且是喊开始程序开始滚动,喊停结束的抽奖程序,是喊开始的时候就随机了中奖者了吗?

    对于那种只有开始,程序自己停的抽奖程序,一般都是开始的时候就知道结果,这点应该是合理的,但是对于有开始有停的抽奖程序,比如主持人喊开始,嘉宾喊停,如果喊开始就知道结果,那嘉宾不就是鸡肋了?
    第 2 条附言    2016 年 12 月 22 日
    楼主 review 了跟楼主利益相关的抽奖代码。

    没有后端,名单写死在页面,按开始后,每次显示的都是从名单数组中随机出来的名字,喊停后,最后一次随机出来的就是中奖者,没有后门,中奖者掌握在「停」这。

    此贴到此为止吧
    69 条回复    2024-06-24 13:55:13 +08:00
    kindjeff
        1
    kindjeff  
       2016 年 12 月 21 日   1
    就这个还有业界标准?
    airyland
        2
    airyland  
       2016 年 12 月 21 日
    一般是。后面的交互不过是走走形式。
    ldp940622
        3
    ldp940622  
       2016 年 12 月 21 日 via iPhone
    其实在没按开始前就已经钦定了(逃
    guofs
        4
    guofs  
       2016 年 12 月 21 日
    基本上是这样,为了“资产”不外流不都是这样内定的吗
    hanzichi
        5
    hanzichi  
    OP
       2016 年 12 月 21 日
    @kindjeff 我是觉得匪夷所思,觉得不可能有这样的实现 ..
    cyio
        6
    cyio  
       2016 年 12 月 21 日
    上个月做了个项目就是这样的,我也很惊讶
    hanzichi
        7
    hanzichi  
    OP
       2016 年 12 月 21 日
    @airyland
    @ldp940622
    @guofs

    不涉及钦定这种概念,也是公平公正的,比如年会抽奖,主持人喊开始,嘉宾喊停,这样实现,感觉嘉宾 ...
    hanzichi
        8
    hanzichi  
    OP
       2016 年 12 月 21 日
    @cyio 我已经震惊了,之前提前喊停我的大奖被取消了,现在想想,不还是我的 ...
    Mutoo
        9
    Mutoo  
       2016 年 12 月 21 日
    手机网游就是这样,点抽奖的时候,向后端发请求,后端把抽奖结果传回,前端只是演示动画效果。
    因为策划要求抽奖概念可控。最重要的不能信任客户端生成的结果,可能会被破解。
    不过要把演示动画做到很逼真也是要花不少功夫的,很多演示做得很生硬。
    hanzichi
        10
    hanzichi  
    OP
       2016 年 12 月 21 日
    @Mutoo 这个可以理解,我在想的是那种电视上支持人喊开始嘉宾喊停,也是这种模式吗?
    Mutoo
        11
    Mutoo  
       2016 年 12 月 21 日
    @hanzichi 具体看什么表现形式了,有的表现形式很容易造假,例如完全随机数跳跃,然后最后停下。可以停在设定好的地方。如果是物力仿真程序,可信度会高一些。但是也是可以用曲线渐近的方式慢慢停到设定好的位置。最好的方式是让大家 codereview 抽奖代码,适合 it 文化公司,请参见去年的讨论 /t/167459?p=1
    jarlyyn
        12
    jarlyyn  
       2016 年 12 月 21 日
    不是应该在抽奖前就确定了么?
    Geoion
        13
    Geoion  
       2016 年 12 月 21 日
    中奖结果不是写死么?
    depress
        14
    depress  
       2016 年 12 月 21 日 via Android
    是的,我们就是这样,转盘抽奖,点开始的时候前端请求后端,后端告诉中的什么,前端负责把指针停到那个区域就行了,这种交互好,用户不用等。估计京东也是这样,我好几次抽奖眼看要停了结果速度极缓慢的又走了好几个格,就为了那个“谢谢”。
    gimp
        15
    gimp  
       2016 年 12 月 21 日
    节目效果

    嘉宾:该配合你演出的我在尽力表演...
    onlyhot
        16
    onlyhot  
       2016 年 12 月 21 日 via iPhone
    动画效果,毕竟是效果...
    bearqq
        17
    bearqq  
       2016 年 12 月 21 日 via Android
    别人的啊知道,我说说我的。
    年初部门内活动,顺带抽奖,活动带家属,部分奖品需要每家都有不多不少,有的奖品提前被申领了。当然,这些事情家属是不知道的。
    我写的抽奖程序, web 端。在第一个人抽的时候,所有人的奖品就被分配了,部分奖品随机。点一次抽奖只是放一遍 gif 而已。
    web 端隐藏好接口查询和重置。
    就这样。
    骗小孩子的。
    archer2ee
        18
    archer2ee  
       2016 年 12 月 21 日
    不一定吧. 最近我刚好也在写抽奖红包, 红包池里谁来了就拿一个走, 做好用户限定和校验就好.
    liqingcan
        19
    liqingcan  
       2016 年 12 月 21 日
    如果可以的话,我还是比较喜欢那种实物的抽奖方式,比如晚会有门票(门票号)或者什么签到的时候写一张代表自己的纸条什么的,然后把门票放入抽奖箱,人工抽奖感觉还更有意思。
    ik
        20
    ik  
       2016 年 12 月 21 日 via iPhone
    比如 真实环境丢骰子,那确实之后产生结婚。
    mingyun
        21
    mingyun  
       2016 年 12 月 21 日
    抽奖有真的吗
    Thoxvi
        22
    Thoxvi  
       2016 年 12 月 21 日 via Android   1
    @ik 结婚好评
    nfroot
        23
    nfroot  
       2016 年 12 月 22 日
    @depress 腾讯也是这样 相当讨厌 明明走不到那么远的 拼了命也要走到那里去
    coolair
        24
    coolair  
       2016 年 12 月 22 日 via Android
    网易邮箱的积分就是这么弄得,点完抽奖,邮件就收到了,转盘还要转半分钟,真是傻……。
    johnnie502
        25
    johnnie502  
       2016 年 12 月 22 日
    回答问题:这真是真的,因为实现起来最简单。至于嘉宾喊停,你就理解成嘉宾认领结果好了,本来也不是他能决定的不是?
    TangMonk
        26
    TangMonk  
       2016 年 12 月 22 日 via Android
    本来就应该是这样,如果客户端控制抽奖流程,就很容易被抓包破解掉。
    hanzichi
        27
    hanzichi  
    OP
       2016 年 12 月 22 日
    @johnnie502 颠覆了我的一些常识认知啊 ...
    hanzichi
        28
    hanzichi  
    OP
       2016 年 12 月 22 日
    @TangMonk 破解也没事啊,反正公平公正 ...
    gamexg
        29
    gamexg  
       2016 年 12 月 22 日
    @nfroot 淘宝的更扯,轮盘指的结果和最后报的结果都不一样,轮盘盘指向了中奖,结果结果是感谢参与。
    GKLuke
        30
    GKLuke  
       2016 年 12 月 22 日
    我觉得,其实当你拿到“奖券”的时候就已经决定了有没有中奖了。其实根本不需要 random ,奖就在那里,你运气好,就抽到奖了,你运气不好,就抽不到,不要把你的运气交给抽奖人。
    ik
        31
    ik  
       2016 年 12 月 22 日
    @Thoxvi 睡觉前回复的,迷迷糊糊没注意,打错字了.. - -/
    boter
        32
    boter  
       2016 年 12 月 22 日
    @GKLuke 未来是已经存在的。
    TangMonk
        33
    TangMonk  
       2016 年 12 月 22 日
    @hanzichi 破解了就可以一直抽一等奖了。。
    GG668v26Fd55CP5W
        34
    GG668v26Fd55CP5W  
       2016 年 12 月 22 日 via iPhone   1
    是的,如果你做过游戏后端很多事情就能理解了
    qa2080639
        35
    qa2080639  
       2016 年 12 月 22 日   1
    99.9%是这样的。完可以直接提示的东西,却要浪费别人时间
    hanzichi
        36
    hanzichi  
    OP
       2016 年 12 月 22 日
    @falcon05
    @qa2080639

    刷新了我的认知啊,之前有次抽奖嘉宾还没喊停就停了,大奖抽中了我,结果重抽了 ...
    dreamwar
        37
    dreamwar  
       2016 年 12 月 22 日   1
    @hanzichi 心疼你
    jugelizi
        38
    jugelizi  
       2016 年 12 月 22 日
    你们就不要再伤害楼主了
    xiaoyang7545
        39
    xiaoyang7545  
       2016 年 12 月 22 日   1
    @qa2080639 99.9%说的莫名其妙。我之前写的就跟停有关啊。用 js 每 100 毫秒执行一次换结果。
    ferock
        40
    ferock  
    PRO
       2016 年 12 月 22 日 via iPhone
    @hanzichi 你的问题很好理解,就是谁去触发抽奖动作
    xiaoyang7545
        41
    xiaoyang7545  
       2016 年 12 月 22 日
    哦 不过我那个涉及到需要数据库辅助就不行了。纯前端的
    peinhu
        42
    peinhu  
       2016 年 12 月 22 日
    LZ 应该没做过抽奖程序吧,其实你自己做过的话就知道了,和实物不同,只要是电子的,不管是翻牌、转盘、砸蛋还是开宝箱,你点下去的那一刻就出结果了,后面只不过是播放动画而已,经常会给你一种差一点就中奖的错觉,其实概率可能是 0
    hanzichi
        43
    hanzichi  
    OP
       2016 年 12 月 22 日
    @xiaoyang7545 极大的安慰啊 ..
    hanzichi
        44
    hanzichi  
    OP
       2016 年 12 月 22 日
    @ferock 主持人喊开始,嘉宾喊停 ...
    peinhu
        45
    peinhu  
       2016 年 12 月 22 日
    喊停的那种更好做。。连动画都省了,第一次停显示啥第二次停显示啥都设定好就行了,我不会告诉你我们公司年后会拷贝不走样就是滚动喊停的,然后人事让我做成喊停的时候显示几个特别难的动作。。。
    hanzichi
        46
    hanzichi  
    OP
       2016 年 12 月 22 日
    @peinhu 你说的场景都好理解,毕竟你只能控制「开始」,无法控制「结束」,但是有开始有结束的抽奖案例,也是这样,我就不能理解了 ...
    beiping96
        47
    beiping96  
       2016 年 12 月 22 日
    游戏开发是这样,一般前端请求开始抽奖,后端收到请求后进行合法性验证,验证通过就给给前端中奖号码,至于滚动几秒的展现都是假的
    unknownservice
        48
    unknownservice  
       2016 年 12 月 22 日
    所以我现在都用 console 抽奖了,代码就一行,随便 review...
    peinhu
        49
    peinhu  
       2016 年 12 月 22 日
    @hanzichi 哥们你还不明白吗。。开始和停都是别人喊,你都能控制结果,全都可以“钦定”,懂了么
    ferock
        50
    ferock  
    PRO
       2016 年 12 月 22 日 via iPhone   1
    @hanzichi 这点你顶楼已经说过了,那我再说直白点,就是触发那个随机逻辑是在喊开始的时候?还是喊结束的时候?对不对?
    hanzichi
        51
    hanzichi  
    OP
       2016 年 12 月 22 日
    @ferock 对的,还是哥们你解释的明白!
    Blask
        52
    Blask  
       2016 年 12 月 22 日
    其实从宇宙的开始就已经决定了中奖者了
    Tyanboot
        53
    Tyanboot  
    PRO
       2016 年 12 月 22 日 via Android
    嘉宾喊停的时候把提前决定的中奖者显示出来不就好了?
    taresky
        54
    taresky  
       2016 年 12 月 22 日 via iPhone
    @hanzichi

    为什么破解公平公正
    而随机出来的结果不公平不公正?
    ibegyourpardon
        55
    ibegyourpardon  
       2016 年 12 月 22 日
    作假容易,但我司的业务里在抽奖这块还从没做过假,没意思……

    作假要用在高级的地方,这种低端的活动现场抽奖我们一致认为不值得浪费时间精力作假。
    shunia
        56
    shunia  
       2016 年 12 月 22 日
    是的,一开始就知道结果.

    也不排除有往复杂了做的,不过想不到理由.
    newljs
        57
    newljs  
       2016 年 12 月 22 日
    难道不是钦定的吗?
    ivvei
        58
    ivvei  
       2016 年 12 月 22 日   1
    完全看你程序怎么写。年会抽奖那种根本不用考虑客户端破解的事情。
    ahillgian
        59
    ahillgian  
       2016 年 12 月 22 日
    是的, 点了开始就知道结果了, 之后华丽的动画只是迷人眼的.
    chuhemiao
        60
    chuhemiao  
       2016 年 12 月 22 日
    写纸条直接抽比较靠谱
    jacy
        61
    jacy  
       2016 年 12 月 22 日
    从程序逻辑来说一般都是这样设定的,当然也可以不这样,看写程序的人了
    grimpil
        62
    grimpil  
       2016 年 12 月 22 日 via Android
    这种事和程序有啥关系,哪怕是抽签抓阄,到底谁中奖,还不是看主办方的意图吗
    有些是真心想把奖发出去的,有些只是拿奖品吸引人关注,为了不让大奖外流都暗中操作让自己人中奖的。
    ikaros
        63
    ikaros  
       2016 年 12 月 22 日
    其实宇宙所有的选择一开始都已经决定了,请参考:

    https://zh.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E8%AB%96
    HanSonJ
        64
    HanSonJ  
       2016 年 12 月 22 日
    看大家评论就知道大家对抽奖多失望了,曾被学校老师叫去做元旦教职工抽奖,没黑幕
    julydu
        65
    julydu  
       2016 年 12 月 22 日
    嗯,地产类的抽奖大多数都是网站定制的
    这些网站的抽奖后台在之前都是需要导入数据的,在这个时候导入的数据也可以导入特定的中奖顺序与人员
    所以谁中奖中什么奖都是早就设定好的
    当然也可以真正的随机,这个就真的不知道是谁中奖了。
    shinwood
        66
    shinwood  
       2016 年 12 月 22 日
    这样说吧,我为本公司写了多个抽奖软件。

    有的是随机的,第一次按下按钮是用 timer 做名单的随机滚动,第二次按下以后,得到随机的名字;

    还有的将名字用变量直接写进代码,直接抽中。所有的滚动都是无效的。
    ichigo
        67
    ichigo  
       2016 年 12 月 22 日
    我用 excel 做过抽奖程序,其实把想中的人的中奖率提高一下,别人的降低一下,基本等同于提前知晓结果了……
    至于随机过程,楼上很多都说了,只是播放动画而已……
    dreamcountry
        68
    dreamcountry  
       2016 年 12 月 22 日   1
    抽奖程序完全是黑盒,不可能被监督,所以抽到什么结果都是可能的
    NonClockworkChen
        69
    NonClockworkChen  
       2024 年 6 月 24 日
    @gamexg 可能是这种逻辑:如果用户抽到了包含奖品的格子,但是奖品没库存了怎么办?通知用户没中奖。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2844 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 130ms UTC 01:14 PVG 09:14 LAX 18:14 JFK 21:14
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86