当前位置:编程学习 > C#/ASP.NET >>

问个问题,实现网上挖宝的程序,仿照幸运52的形式

是这样的需求。 
挖宝的解释:就是用户可以在一个页面点击广告牌后根据系统的设计可以提示中奖或者没有中奖(类似幸运52的那种活动) 
总体:开发一个系统,用户可以看到本期挖宝活动的奖品数量和已经挖出来的奖品和剩下的奖品 
1.用户点击广告后根据一个比较公平的算法计算出有没有中奖 
2.后台可以管理挖宝的活动期数、宝贝数量、广告牌的管理。 
3.算法尽量公平公正,奖品最好能平均分配(例:一期活动5天,共有10个奖品,那么中奖的概率最好是每天都能中两个奖品) 

可能表述不是很清楚,随时更正   

最好能给个详细的算法说明或者实现方法 或者有更好的建议

谢谢了 --------------------编程问答-------------------- 那随机算了,说不定奖品一个都拿不走 ^_^ --------------------编程问答-------------------- 首先要定义活动的期数,打算每期中奖的个数。
我们假设每周m次该活动,每次中将n个,每次挖宝x次,广告牌x个。

--------------------编程问答-------------------- 后台以活动的期次为唯一标识。
包括活动的期次、本期的中将个数,本期的挖宝次数,广告牌个数,已挖个数,已中奖个数,中奖人id
--------------------编程问答-------------------- 每挖一次宝,当前的期次对应的已挖个数长1,默认为0;
中奖率=本期的中将个数/本期的挖宝次数;(常数)
剩余挖宝次数=本期的挖宝次数-已挖个数;



--------------------编程问答-------------------- 假设有10个广告牌,名字分别为:m1、m2、m3……m9、m10。
我们采用随机分配,给他们赋值0、0、0、0、0、0、0、0、1、1
分配后进行挖宝。
如果你的广告牌下是1,表示你中奖;
如果你的广告牌下是0,表示你非中奖;

--------------------编程问答-------------------- 这个活动有个不确定因素是这样的:1.任何人打开这个页面都可以随便的挖宝 。 2.没有点击次数的限制

所以 这个概率从哪里来算是个问题,想用时间来计算这个概率,不过没想出很好的点 --------------------编程问答-------------------- 挖宝之前有些参数是需要设置的,否则就很难控制平均。  --------------------编程问答-------------------- 这个东西有多少人来参加多少点击量都是未知的,这点很郁闷,没有很好的概率产生的地方 --------------------编程问答-------------------- 就像投票一样,只能让他投一票。 --------------------编程问答-------------------- 假如我们把中奖率定为1/100

我们可以这样:
1、有人上网站后记录他的IP,只能让他点一次,然后就让挖宝button对他失效。
2、我们例如有5个奖品,500个挖宝的机会。
3、当累积点到500次后,提示今天的挖宝活动已经结束。 --------------------编程问答-------------------- 补充几点
1.匿名“挖宝”,挖中了填写个人信息后领奖,直接公布。
2.只有活动的每期时间和奖品数量是已知的,其他(参加人数、点击量)都不确定
3.最好能平均分配奖品(根据时间来平均分配中奖概率) --------------------编程问答-------------------- 在生成活动时(也就是排列广告牌时)就确定下来哪个广告有奖哪个广告没奖,随机分配既可. --------------------编程问答-------------------- 旁边提示:

今天的中奖名单。
剩余的宝贝个数。

-----------
当有人中奖后,提示他填写中奖信息。然后将他/她的名字写在左侧。
一般当宝贝个数为0后就不会有人再点了。 
--------------------编程问答-------------------- to:maco_wang 
挖宝的机会是不能限制的,限制ip也不显示,我们这里是pppoe的上网方式,每次拨号的ip都不相同。不好限制 --------------------编程问答-------------------- 旁边提示: 

今天的中奖名单。 
剩余的宝贝个数。 

----------- 
当有人中奖后,提示他填写中奖信息。然后将他/她的名字写在左侧。 
一般当宝贝个数为0后就不会有人再点了。 
-----------------------------------------------

所以最好能根据活动的时间来控制中奖的数量,在实际的抽奖活动中好像也是这样的,活动不会让开始几天把所有的奖品都抓走的,也就是人为的最好能干预
--------------------编程问答-------------------- 可不可以让他先注册,登陆以后再挖宝,这样就可以限制了。 --------------------编程问答-------------------- 可不可以让他先注册,登陆以后再挖宝,这样就可以限制了。

-----------------------------------------------------

不想限制这个,对用户门槛提高了,影响活动,主要的目的是让商家参加进来,提供奖品、放广告牌,对用户不像
加太多的限制 --------------------编程问答-------------------- 我觉得这个的问题就是怎么能通过活动的时间来计算出一个中奖的概率来,实际的抽奖活动是用奖券来算,这里用时间, --------------------编程问答-------------------- 那就只能是这样了:
你的用户是不确定的,而且他可以无限的点。
那就只能定义死时间。

假如你今天打算方法10个奖品

在今天的时间里随机选10个时间点。
以分钟为单位。 
--------------------编程问答-------------------- 随机选取10个时间点:
如:
01:12:23

03:23:33

06:23:09


那就是说到01:12:23时间后,第一个点的人让他中奖。
然后依次。 --------------------编程问答-------------------- 随机选取10个时间点,但要求必须有一个是23:00:00以后的。 --------------------编程问答-------------------- 如果4点以前没有人点,那4点的时候,这个人可以连中两个奖。 --------------------编程问答-------------------- 这样会不会出现这样的问题,如果点击人数很多的时候,一个奖品同时让两个人给点上, --------------------编程问答-------------------- 程序的执行总有一个先后的顺序 --------------------编程问答-------------------- 如果时间是02:00:00
有两个人在02:00:56时间同时点。
在这个时间只开放了一个宝,第一个到的人添加中奖信息,然后关闭中奖。
第二个就是没宝了。 --------------------编程问答-------------------- 应该没有问题。看看大家的看法!
//你可以用测试工具测试一下。
//电脑应该可以分得清先后。 --------------------编程问答-------------------- 假如咱两个几乎是同时挖宝,你比我早一个毫秒级的时间单位,你肯定会提示中奖,可能你中奖的过程还没有处理完毕,
没有从总奖品中去掉你刚刚中的奖,我就点了,这样系统可能也会提示我也中奖吧 --------------------编程问答-------------------- 计算机处理的过程时间不仅仅是以毫秒为单位。
我们可以这样考虑,当第一个人的传到后,会进行中奖处理,当中奖处理完后,才提示你中奖了。当第二个传到时,因为已经再处理中奖信息了,所以他就是非中奖的了。就好比一个队列,单通道的,当一个人中奖后,第二个人其实也中奖了,但是他没有被提示中奖。 --------------------编程问答-------------------- 楼主做好了,发个链接出来,我也去挖挖!呵呵!
--------------------编程问答-------------------- 1.根据当天的点击数分别指定中奖率(概率最好是每天都能中两个奖品)
2.先注册,登陆以后再挖宝 --------------------编程问答-------------------- 1.根据当天的点击数分别指定中奖率(概率最好是每天都能中两个奖品) 
2.先注册,登陆以后再挖宝
=----------------------

没发确定点击数

还是不想先注册 --------------------编程问答-------------------- 需求本身有很严重的缺陷!!!!

不限制的话,那你的广告牌数就没法定,比如你定N个,那么我一个人就可以都点过来
如果是幸运52那种方式,必须在设置广告牌的时候就已经确定了这个牌子后面的奖品,不能用随机数来做! --------------------编程问答-------------------- 需求有严重的问题!!
如果你设置了广告牌的个数,那么我一个人进去就可以点了所有的,而如果是幸运52那种模式
那你的广告牌设置时,就已经决定了它后面的奖品,那么这个人就拿到了奖品 --------------------编程问答-------------------- 建议整理一下思路
比如,我每天确定要发两个奖品,然后设置1000个广告牌(假设),时间为早7点到晚9点,那么在这个时间段里,任何人都可能点击这1000,那么奖品就肯定发出去了。可能连10分钟都用不了,奖品就发出去了。
如果用中奖率来做,那么有可能在这个时间段里不会有人中奖,但也有可能前两次点击就拿走了奖品,这就是未知的了 --------------------编程问答-------------------- 只是用幸运52那种显示样式,是要从广告牌提交到一个处理程序里,从哪个提交都没有限制,而且广告牌的数量应该不多
补充:.NET技术 ,  非技术区
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,