取随机数问题

wazhg1982 2012-09-08 11:31:28
在一组数中,根据每个数对应的权重值随机抽选,要求权重值越大,被抽到的几率也大,权重值小,被抽到的几率也小。是一个考试选题的应用,在题库中随机选题,每道题目对应一个权重,老师通过设置题目的权重,控制题目被抽到的几率,谢谢网友回复,分不多,笑纳!
...全文
81 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-09-08
  • 打赏
  • 举报
回复
因为系统随机数(可以认为)是在一个区间上均匀分布,且每个区间概率相等。
所以制造概率不等的办法就是让这些区间有的大有的小,比如:
int x = rnd.Next(0, 100); //取0~100任意数字
if (x < 20) //有20%的可能
...
else
... // 有80%的可能
wtnu200 2012-09-08
  • 打赏
  • 举报
回复
想象一下,有一个池[数组或list等],放这些题目的ID,权重多大,就放多少个,比如权重是5,就放五个这题目的ID进去,正常情况下都是1,就是只放一个,抽取题目就是先在这池里取,再根据ID找到这些题目。
wazhg1982 2012-09-08
  • 打赏
  • 举报
回复
有网友遇到过类似问题吗?请指教,谢谢!

110,535

社区成员

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

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

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