帮我解决一下这个问题

johnbbs 2003-07-23 02:12:21
如何在100名学生中,随机的挑选50人。在.net中如何实现,我用Random.Next不行,学生有重复的,如何实现随机的且学生不重复.
...全文
19 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
luckygjl 2003-07-23
  • 打赏
  • 举报
回复
聪明
batisituta 2003-07-23
  • 打赏
  • 举报
回复
产生随机数其实还有一种办法,但是比较复杂:
将50个数放入一个数组,用随机函数从1-50中选择一个ID以后,
重构数组,将数组的长度变为49,即取出的那个数的数组ID以后的
数,对应的ID-1.
如此循环,直至数组的长度为1。
johnbbs 2003-07-23
  • 打赏
  • 举报
回复
在帮我解决一个问题,如何根据不同时间控制系统得不同功能
johnbbs 2003-07-23
  • 打赏
  • 举报
回复
姑且速度不用担心,可要是随机产生得数一直重复怎办?帮帮我,好吧
cyp503 2003-07-23
  • 打赏
  • 举报
回复
int _i=0;
if(myHashTable.Contains(id))
{
//排除
}
else
{
if(_i<50)
{
//选择
_i++;
}
}
johnbbs 2003-07-23
  • 打赏
  • 举报
回复
随机产生得数有没有别得方法??谢谢
johnbbs 2003-07-23
  • 打赏
  • 举报
回复
姑且速度不用担心,可要是随机产生得数一直重复怎办?
batisituta 2003-07-23
  • 打赏
  • 举报
回复
速度方面不用太担心,没有复杂的运算,只是比较取数而已,
batisituta 2003-07-23
  • 打赏
  • 举报
回复
同意cyp503(谁怕?一蓑烟雨任平生),
数组的判断可能复杂一些。
johnbbs 2003-07-23
  • 打赏
  • 举报
回复
不行呀,我必需选择50人,要是一直没有选到50人怎么办,程序不是死循环了,即使选中50人,那它得速度也太慢了吧,有没有更好得方法,谢谢
cyp503 2003-07-23
  • 打赏
  • 举报
回复
用一个HashTable保存已经选过的

if(myHashTable.Contains(id))
{
//排除
}
else
{
//选择
}
dongchuanlu 2003-07-23
  • 打赏
  • 举报
回复
错了

1,将选中的学生的ID用“,”,连成一个字符串myselect
2。裁为数组
3,新的号是否在数组中
dongchuanlu 2003-07-23
  • 打赏
  • 举报
回复
1,将选中的学生的ID用“,”,连成一个字符串myselect
2,if(myselect.IndexOf(0,刚选的学生ID.Tostring())<)
{
//满足条件,继续选
}else
{
//排除
}
发帖
.NET社区

6.1w+

社区成员

.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
帖子事件
创建了帖子
2003-07-23 02:12
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。