关于:抽奖程序的初步思路

YYDR 2010-12-25 11:24:33
[color=#333399]在为公司做一个年会抽奖程序,领导的初步的想法是这样,从总员工数(约400人)中抽取几次,每次30人,每次抽的时候,30人随机选择,直至手工停止为止,第二轮,第三轮类推,不重复。

目前遇到的问题,就是,如何同时随机抽取30人,随机函数只能解决抽取一个人,请大家支招,看有没有什么好的解决思路。
[/color]
...全文
546 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
636f6c696e 2011-01-10
  • 打赏
  • 举报
回复
用线程做容易出问题。
我看楼主的需求对同步要求应该不大。
比较同意1楼的做法,用list保存1-400,抽到一个list.remove一个。
如果轮与轮之间需要不重复,直接抽120个,分下组就行了。
不需要的话,重置下list就行了。
heatonc 2011-01-10
  • 打赏
  • 举报
回复
用多线程做是不是在效率上 会好很多
数组后随机数再从数组删除会不会 执行效率很慢 ?
zldnjack 2011-01-10
  • 打赏
  • 举报
回复
方都不错  
web710 2010-12-28
  • 打赏
  • 举报
回复
先给所有的人的信息分到一个数组中,然后做一个随机函数,用随机函数的值对应数组的编号,取出相应的名字就可以.要注意的是C#的随机函数要每次给一个新的种子.
YYDR 2010-12-28
  • 打赏
  • 举报
回复
是的,请大家继续多提好的解决方法,上面朋友的程序当中是先设定每次抽奖的总人数,再一个一个的抽取,不是这样的。
zhangsir6 2010-12-28
  • 打赏
  • 举报
回复
貌似和电视上那些经常抽取手机号码的程序差不多……
YYDR 2010-12-28
  • 打赏
  • 举报
回复
谢谢大家的建议。
是这样的,界面上会有30个区域,只要点开始抽奖按钮,每个区域都在同时随机抽取,只有再点击停止,才结束当次抽奖。

如果每次抽取一个人,再从数组当中删除,这样就要循环这个动作30次,可能在一次抽奖的过程当中,需要多轮的随机抽取。

我正在测试,不知道大家和我这样的做法是否符合。
wangsong145 2010-12-27
  • 打赏
  • 举报
回复
循环执行30次随机取数可以不?
wangwffgqeg 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wangufo168 的回复:]
用线程不知合适不
[/Quote]
OK
jeven_xiao 2010-12-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]

List<t>保存信息
Random rand = new Random(Guid.NewGuid().GetHashCode());获取随机数,范围为1-400
抽出一等奖在list中删除对象信息,重新随机抽取
http://www.cnblogs.com/okxugang/archive/2010/02/27/1674869.html
[/Quote]
拣到一个好代码·谢谢
boyate 2010-12-27
  • 打赏
  • 举报
回复
去年刚写个...
需求很类似


把所有人员写到一个数组中
每次产生一个人,然后从数组中删掉,再次产生,再删掉如此循环往复即可~~
sincerely83 2010-12-27
  • 打赏
  • 举报
回复
循环抽取,抽过的不在抽取。。。抽过的做标志或者判断是否已经抽过(存放在数组或其他结构中)
WANGUFO168 2010-12-26
  • 打赏
  • 举报
回复
用线程不知合适不
MR00009 2010-12-25
  • 打赏
  • 举报
回复
随机数只能取一个,
那弄个循环,让随机数循环30次。

我也是新手,不会做随机不重复。呵呵。。
wuyq11 2010-12-25
  • 打赏
  • 举报
回复
List<t>保存信息
Random rand = new Random(Guid.NewGuid().GetHashCode());获取随机数,范围为1-400
抽出一等奖在list中删除对象信息,重新随机抽取
http://www.cnblogs.com/okxugang/archive/2010/02/27/1674869.html

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧