zoukankan      html  css  js  c++  java
  • 关于年会抽奖那些事

    http://blog.chinaunix.net/uid-11121450-id-3480134.html快春节了,各个公司都陆续举办年会,ipad作为年会抽奖的大奖都卖脱销了,在年会抽奖出现尴尬的是:抽奖抽多了,没有奖品可发。

    我昨天总结了在开发过程中遇到的抽奖问题

    1.抽奖类型

    1.1 即开型
    提交后立即知道是否中奖:大转盘,老hu机

    1.2 公证型

    由公证处公证,现场抽奖

    1.3投票型

    根据投票数最高排名,选出中奖者
    1.4 评选型
    由客户根据作品质量选取

    这四种类型中出现错误时,最难处理的顺序是:危险性:即开型>公证型>投票型>评选型

    2.抽奖要素

    2.1 即开型
    奖品、概率、中奖时段、中奖规则(微博粉丝数,是否可以重复中奖,…)、如何获取中奖用户信息、通知中奖方式
    2.2 公证型
    奖品、概率 、如何获取中奖用户信息、通知中奖方式,中奖规则(微博粉丝数,是否可以重复中奖,…)
    2.3 投票型
    奖品、投票限制(每天每人或者ip每个作品只能投票10次…)、防止刷票(验证码) 、如何获取中奖用户信息、通知中奖方式
    2.4 评选型

    奖品、如何获取中奖用户信息、通知中奖方式

    3.抽奖流程

    4.注意事项

    1)奖品不能够发多
    2)奖品类型不能混淆
    3)尽量在一次请求内完成抽奖
    4)多步即时开奖时,每一步之间用uuid关联(或者session),不能够使用用户id或者别的自增的id,必须保证id不能够被猜出来。
    5)投票一定得考虑刷票现象,最好使用中文验证码
    6)抽奖过程中若是出现异常,一定得有返回值,返回值一定是“不中奖”
    7)若是出现数据库错误,一定回滚
    8)抽奖的每一步最好记录到日志文件中,以备检查
    9)抽奖程序里的时间必须是一个,应该是在程序开始时记录一个时间戳,所有涉及到时间的地方都用这个时间,不能够在不同的sql语句中使用now,否则出现在同一个程序里跨天的问题
    10)一定得使用POST方式提交数据
    11)数据库里的中奖标志只能是一个字段

    12)中奖名单页面中查询一般是中奖标志加上时间段或者奖品分类

    5.抽奖概率算法

    假设 一等奖几率:1/1000,二等奖几率:1/100
    1)设定基数是1000
    2)产生一个0…999的随机数
    3)若是这个数小于1则中一等奖
    4)若是这个数小于1+10,则中二等奖
    5)否则不中奖

  • 相关阅读:
    jchdl
    jchdl
    UVa 10256 (判断两个凸包相离) The Great Divide
    UVa 11168 (凸包+点到直线距离) Airport
    LA 2572 (求可见圆盘的数量) Kanazawa
    UVa 10652 (简单凸包) Board Wrapping
    UVa 12304 (6个二维几何问题合集) 2D Geometry 110 in 1!
    UVa 10674 (求两圆公切线) Tangents
    UVa 11796 Dog Distance
    LA 3263 (平面图的欧拉定理) That Nice Euler Circuit
  • 原文地址:https://www.cnblogs.com/svennee/p/4089791.html
Copyright © 2011-2022 走看看