请教:从n个连续数中随机选用m个数的办法(int m,n,m

redolive 2003-05-23 09:06:53
有考试系统,须从有 N 个试题的题库中随机取出 M 个试题生成试卷
N 设定为与试题的id编号关联,连续自然数
有什么好的算法吗?
我现在用的是下面一个,感觉不行:

Dim intArr(20) as integer

Dim R as new random()
Dim i as short

for i=0 to 20

intArr(i)=r.next(1,20)
next
dim tmp,p as integer
//随机交换
for i=0 to 9
p=r.next(1,20-i) //再随机生成须交换的
tmp=intarr(p)
intarr(p)=intarr(20-i-1)
intarr(20-i-1) = tmp
next
//intArr(n)后m个即为选用的随机数。

还有更好的算法吗?
...全文
38 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Latitude 2003-05-25
  • 打赏
  • 举报
回复
试题库的制作是这样的:
先对总数分组,比如说分五组
然后再对组内中用楼主的方法选出四个不重复的数。
这样还可以考虑按章节等分组,以便出题涵盖面广。

-----
by Henry
Montaque 2003-05-24
  • 打赏
  • 举报
回复
Dim i, j As Integer
i = 100 '总共100个数字,1到100
For j = 1 To 20 '挑选20个数
Debug.WriteLine(Int(Rnd(j) * i))
Next

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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