注册 登录
编程论坛 VB6论坛

求助,怎样使随机抽取的每个名字出现次数相同

萧客 发布于 2015-12-01 09:04, 1865 次点击
求助,怎样使随机抽取的每个名字出现次数相同,用到什么函数
22 回复
#2
wmf20142015-12-01 09:07
如果要相同,就不用随机了。
#3
萧客2015-12-01 09:21
是相同或相近,
#4
wp2319572015-12-01 09:23
回复 3楼 萧客
说说你到底想干嘛吧   

既然是随机  那就是不受控  受控就不是随机
#5
萧客2015-12-01 09:25
总的出现次数不能超过设置的总次数,但每次抽到的名字,在列表中均衡能出现。目前遇到抽取的名字多次出现,其它还有很多名字一个没抽到。
#6
wp2319572015-12-01 09:30
你的意思说  比如抓奖时   如果抓不到一等奖  就一直抓 一直抓 直到抓到为止   

按随机角度出发  即便你有百分之一的概率  但是抽1000次 也有可能一次也抽不到
#7
萧客2015-12-01 09:36
不是这个意思,我要做的是一个随机抽房的系统,每间酒店抽到的次数均衡出现,否则会有失公平,所以随机抽到的每间酒店次数相近
#8
wmf20142015-12-01 09:46
这样啊。就是每个酒店都要均衡抽到,又要随机,这很简单,可用计数法,比如100个人随机平均分配到5个酒店,每个酒店20个人,就在5个酒店里随机,每抽到一个酒店,就对该酒店住的人数加1,如果该酒店住的人数已达到20,则该酒店不再参与随机,就在剩下的酒店里随机,直到分配完成。
#9
萧客2015-12-01 09:59
这样不行哦,每天多少人无法预测,人数在千人以上,大概4到6个人为一个单位随机选择酒店,如果住满会自动不再出现,现在问题就是有的酒店抽到还有10几个床位了,其它十几间酒店还有百来个床位,无法做到均衡地分配到各酒店去,这样所有人住下后就可能出现有的酒店只有几十人,而其它酒店却住满了,像这种情况对住的少的酒店来说会有失公平

[此贴子已经被作者于2015-12-1 10:00编辑过]

#10
wmf20142015-12-01 10:01
那就对床位进行随机抽取,反正床位是和酒店绑定的。
#11
萧客2015-12-01 10:03
床位数吗,人数也就是床位数呀
#12
萧客2015-12-01 10:06
目前用到的是Randomize这个函数
#13
wp2319572015-12-01 10:06
回复 9楼 萧客
那还抽神马干神马    大家轮流坐庄得了
#14
萧客2015-12-01 10:13
目前想到一个方案,大家帮忙核准下能不能行得通。做一个不重复抽取酒店,所有酒店抽完一次就再循环该代码。
#15
wp2319572015-12-01 10:16
没搞明白你的出发点   既然要雨露均沾  还要随机   实在是弄不明白
#16
萧客2015-12-01 10:37
抽一轮下来,每酒店出现的次数都是一次,然后第二轮又不重复随机抽一遍
#17
萧客2015-12-01 10:37
这样就可以做到均衡了
#18
wp2319572015-12-01 10:38
回复 16楼 萧客
这和轮流坐庄有区别吗
#19
萧客2015-12-01 10:46
不懂啥是轮流座桩,不好意思!
#20
wp2319572015-12-01 10:51
就像小学生值日表   周一  酒店1中奖
                   周二  酒店2中奖
                   以下依次类推
#21
风吹过b2015-12-01 11:59
我搞明白了一点。
首先,把各个酒店的床位计算出一个权重表来。
假设有3个酒店,每个酒店的床位分别是 80,140,70
那么权重表是 80:140:70 ,
抽取前,按权重表的比例,8/29,14/29,7/29 这个百分比,排一个 29项的一个表。每个酒店按这个比例填名字进去。
随机时,从这29项表中随机, 选 中那个就那个酒店。选中的,先去掉,直到整个表全部用完,然后下一轮。

相比而言,这也是轮流坐庄,但这个不是固定的轮流坐庄,而是随机的轮流坐庄。
#22
csl5912017-04-18 10:06
可以将酒店的空余床位数按平均床位率来抽。

#23
csl5912017-04-18 10:39
可以将酒店的空余床位数按平均床位率来分配。
1