相同概率的抽奖程序另类实现——使用数据库,无需数学原理nlh774

抽奖,是很多企业、聚会的常见玩乐形式,光彩绚丽的抽奖屏幕背后,是计算程序+抽奖用户信息。程序=算法+数据结构。

好,说抽奖程序的的实现吧。这个实现一般需要应用数学原理。而本文的方法是我在参加一次婚礼的抽奖体验后突然想到的,一种比较简单、无需数学原理的方法。

功能:能按照相同概率,从用户集合中抽出随机的部分用户集合作为中奖者。抽奖可以进行多次,对已中奖的用户不会重复抽取。

使用技术:

1.SqlServer数据库,使用NewID()作为select随机筛选函数

2.sql随机函数

3.为了快速方便的搭建原型,使用EF4.1DBfirst,然后代码生成Model类(我在快速开发原型是喜欢EF,讨厌sql-实体转换。能让我从sql中解放出来,专注业务逻辑。只有

当需要的sql逻辑比较复杂,EF难以实现或效率不行时我才写sql-实体转换)。

主要逻辑:

1.建立LotteryUsers(抽奖用户的英文词组)表,定义用户信息、以及是否已中过奖的标志位IsLotteried,默认都是false-0(IsDelete-该用户是否已删除、无效)。

2.执行sql查询出定量的中奖用户集合:

SELECTTOP(@chooseCount)*FROMLotteryUsersluWHERElu.IsDeldte=0ANDlu.IsLotteried=0ORDERBYNEWID()

并且将这些中奖用户的IsLotteried字段设置为true-1

3.控制台显示中奖的用户集合

DB建表语句:

代码(使用EF4.1,实体生成模型),代码细节、EF技术看不懂没关系,了解原理即可:

就这样,lotteryUsers即是中奖的用户。若要继续抽奖,只要再调用GetPrizeUsersAndUpdatePrized()即可,中奖用户不会重复。

---------------------------------------------备注、其他----------------

1.对于某些抽奖,若要内定某些VIP中某个奖,最好不要写死、在配置文件中写上VIP的名字,在抽奖函数中传入这些VIP的名单、直接确认。

2.对于某些次VIP们,若需要提高中奖概率,需要待议。可能实现的方法有:在users表中加上权重Pritory值,然后再做某些操作;或者采用其他较复杂的数学实现方法。

3.我的程序不注重程序\DB效率,所以未经优化。但是实际上,一般抽奖用户也就1W人以下,完全不存在性能问题。(中国16亿人全名抽奖,淘宝京东等全站抽奖数据量很大的,需要另行优化)。

THE END
1.微信抽奖小程序可以内定吗?(技术上可以)答:微信抽奖小程序内定技术层面是可以实现的,但是为了微信抽奖小程序的运营公平性,不建议在我们上海微信小程序开发公司这里你开发的微信抽奖小程序内定中奖人。但是可以让微信抽奖的中奖几率减少或者增大。 更后小编认为目前市面上的微信抽奖小程序只是抽奖中奖率比较低,也没有内定中奖人。如果您想要开发一款微信抽奖小程https://www.xhl8.cn/a/1060.html
2.抽奖小程序怎么做微信小程序抽奖可以内定吗?微信小程序抽奖可以内定吗? 如果是一个微信程序,你不能这么做。除非你能自己编写这样一个小程序,否则你可以自己定制它。 微信小程序抽奖中奖可信吗? 微信彩票应用可信吗?今天,我随机进去点了几张,其中30张告诉我他们中了彩票。他们都是现金券 你已经怀疑他们是假的。如果已单击,则可以修改帐户密码以维护安全性。http://www.zzfmdn.com/article/958364
3.缙哥哥Excel多功能抽奖器简单抽奖器可以内定人员你懂的"缙哥哥Excel多功能抽奖器 简单抽奖器 可以内定人员你懂的" 提供的是一款基于Excel开发的抽奖软件,这款工具主要用于各种活动的抽奖环节,其特点是功能多样且具备一定的灵活性。它允许用户预设特定的中奖名单,即所谓的“内定人员”,在确保公平性的同时,也为某些特殊需求提供了可能。 中的内容重复了标题,强调了这款抽奖https://download.csdn.net/download/loveyouluobin/10367428
4.抽奖小程序有什么功能?抽奖小程序开发开发指南新闻列表抽奖小程序的样式有很多,例如常见的大转盘抽奖、刮刮卡抽奖、摇一摇抽奖、九宫格抽奖等等,各种节日商家都会使用抽奖小程序进行活动举办,下面详细介绍一下抽奖小程序的主要功能,和开发的主要流程。 抽奖小程序主要功能: 1、支持多种活动形式,例如常见的刮刮卡、大转盘、九宫格、摇一摇、盲盒等抽奖形式,用户可以根据活动的https://www.sdsdsoft.com/web/index.php?c=article&a=news-show&do=detail&id=2758
5.抽奖之星3.1,支持作弊内定黑白名单分组炫酷的在线抽奖程序,实用于任何场景的抽奖。支持维护抽奖人员,默认第一次中奖人员为6号人员。 上传者:a1150499208时间:2019-01-17 抽奖之星 v6.6.zip 抽奖之星是一款简单好用的随机抽奖软件。软件可用于各种活动和晚会、年会抽奖,支持文字抽奖、图片抽奖等多种模式,还内置作弊内定、黑白名单、名单分组等诸多功能。软https://www.iteye.com/resource/wsg121212-8662471
6.抽签小程序怎么内定十大好用的抽签软件微信可以抽签排序吗小程序抽签抓阄 还可以用于学校课堂随机点名 今天中午吃什么?不是个问题,点击随机抽签马上给你一个吃的理由! 抽签微信可以用在任何需要进行排列、分组的时候,比如说公司里面大家都不愿意晨会演讲,就可以抽签决定,每到这种难以抉择的时候,抽签分组是少不了的啦。 http://www.xwykj.com/details/62172.html
7.年会抽奖程序准备好了吗?没有的话,直接来取!51CTO博客小程序理论上支持配置百万级别人数,不过相信一般的年会没那么多人(笑) 使用起来非常简单,只需要点击开始按钮,选择抽取奖项、抽取方式,就可以立即开始抽奖: 然后就可以看到代表每个人的随机数字开始转动,点击停止就会弹出最终获奖的幸运儿: 工具自带非常劲爆的背景音乐,让人抽起来有种欲罢不能的感觉;同时,除了上述传统的https://blog.51cto.com/u_14299052/5276967
8.创意迎新晚会策划案12篇(全文)九、抽奖环节安排 1.中奖覆盖率达到100%。2.奖品抽选分六轮进行,分别为“喜气洋洋”奖(68元)、“心想事成”奖(88元)、“五福临门”奖(168元)、“福星高照”奖(188元)、“三阳开泰”奖(666元)、“百里挑一”奖(888元)。 3.抽奖程序:每位到场的教师及来宾,领取入场券一张,入场券上的序号即为代表本人https://www.99xueshu.com/w/file19p59icl.html
9.如何使用微商相册发优惠券及抽奖功能?(操作教程)如何设置优惠券抽奖视频教程? 2、开通在线支付,领券后下单就抵扣 客户中奖后,能在微商相册里直接下单使用吗?可以!「开通在线支付」,客户下单时可直接使用优惠券抵扣优惠金额。点击开通在线收款 PS:如果你平时是用微信转账收款,也没有小程序商城,同样可以随时发起抽奖送券活动,客户中奖后找你人工核销即可。 https://www.wegooooo.com/article/205