一种简单的抽签/抽奖算法逻辑

1、抽签计算方法步骤:
注:A:基数;B:翻转数; X:报名次数;Y:种子号,即起始中签号;Z:阶数;
(1)A=(抽签日的上一个工作日的深圳证券交易所深证成指“今收”指数×100)× (抽签日的上一个工作日的深圳证券交易所中小板指“今收”指数×100)×10000;
注:可登录深圳证券交易所网站历史指数行情查询,详见下文附录。A为整数,不能有小数位。
(2)B=将基数A对应的数字倒序排列(如首位是0,则直接抹去);
(3)Y=B/X后所得的余数加1;
(4)Z=X/中签数量取整数(去掉小数点后的整数);
(5)最终全部中签的报名号,如下:
第一个中签号=Y;
第二个中签号=Y+Z;
第三个中签号=Y+Z * 2;
第N个中签号=Y+Z * (N-1);
如果第N个中签号码>总报名次数,那么第N个中签号码=Y+Z*(N-1)-总报名次数。

2、举例说明
如某个预订活动,38674次报名,要抽中1500个中签的报名号:
(1)每个会员通过报名的先后顺序会得到1到38674的号码作为自己的抽签报名号,每个会员的报名号不同。
(2)按照抽签活动公布的抽签日的上一个工作日的深证证券交易所股票指数收盘行情中,深证板指、中小板指收盘指数为抽签计算变量。
例如:2019年4月29日深圳证券交易所收盘行情:
深证板指:9622.49
中小板指:6013.23
(3)根据上述计算步骤
基数A为“5786224554270000”;
基准数反转数B为“724554226875”;
获得种子数/起始中签号Y为“8144”;(724554226875%38674+1=8144)
阶数:Z=38674/1500(取整数),即为25;
第1个中签号=8144;
第2个中签号=8144+25 * 1;
第3个中签号=8144+25 * 2;
以此类推,第1222个中签号=8144+25*(1222-1)
第1223个中签号=8144+25 * (1223-1)=38694>38674,所以,第1223个中签号=8144+25 * (1223-1)-38674=20
以此类推,第1500个中签号=8144+25 * (1500-1)-38674=6945

注:该算法来源于央行纪念币抽奖活动,侵删

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值