V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hanzichi
V2EX  ›  问与答

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    还有的将名字用变量直接写进代码,直接抽中。所有的滚动都是无效的。
    ichigo
        67
    ichigo  
       2016-12-22 16:15:49 +08:00
    我用 excel 做过抽奖程序,其实把想中的人的中奖率提高一下,别人的降低一下,基本等同于提前知晓结果了……
    至于随机过程,楼上很多都说了,只是播放动画而已……
    dreamcountry
        68
    dreamcountry  
       2016-12-22 16:21:06 +08:00   ❤️ 1
    抽奖程序完全是黑盒,不可能被监督,所以抽到什么结果都是可能的
    NonClockworkChen
        69
    NonClockworkChen  
       146 天前
    @gamexg 可能是这种逻辑:如果用户抽到了包含奖品的格子,但是奖品没库存了怎么办?通知用户没中奖。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2871 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 14:44 · PVG 22:44 · LAX 06:44 · JFK 09:44
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.