asp.net 随机加概率抽奖问题

qq_34067000 2016-05-12 08:55:45
public static string CreateQRLP(string ToUserName)
{
string[] LP_ = {"铅笔",“钢笔","小刀","橡皮"};
int i = 0;

int intCount =Function.GetEverydayCount();

foreach (DataRow dr in set.Tables[0].Rows)
{
LP_[i] = dr["pro_type"].ToString();
i++;
}

Random ra = new Random();//创建随机数
int num = LP_.Length;//是只取出来的数字 是在 0到数组arr长度之间的任意数字
int chooes = ra.Next(num);

return LP_[chooes].ToString();

}
//求把上边的随机数改成随机加概率,铅笔50%,钢笔 10%, 小刀10%,"橡皮30%
...全文
247 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
bangchui_007 2016-05-13
  • 打赏
  • 举报
回复
楼上几位说的很清楚了,我小结一下,楼主所要求的概率,表现在这个随机中,是靠区间来限定范围,即随机数所在区间占总范围的概率,就是楼主要求的概率,原因是随机数在指定范围内对于每一个点的概率都是相同的。关键点是总范围大小和每个区间的大小。 仔细看三楼末尾的公式说明。
我是飞云 2016-05-12
  • 打赏
  • 举报
回复
引用 2 楼 qq_34067000 的回复:
如果铅笔1000个 钢笔500个,小刀100个,橡皮2000个 Random rd = new Random(Guid.NewGuid().GetHashCode()); var num = rd.Next((1000+500+100+2000)); if (num <= 1000) { //铅笔50% } else if (num <= 500) { //钢笔 10% } else if (num <= 100) { //小刀10% } else { //橡皮30% } 如果是设数量随机数,概率和它个数占的比例相同,上边的改成数量也是可以的对吧 。
留意2楼最后一句注释。 抽奖其实是一个非常有逻辑性的过程,很多东西要依靠自己的需求文档来写。 简单的区间算法,你可以这样理解 A=1000+500+100+2000 a=A*0.5 b=a+A*0.1 c=b+A*0.1 .... x<=a,a<=b,a<=c.......
qq_34067000 2016-05-12
  • 打赏
  • 举报
回复
如果铅笔1000个 钢笔500个,小刀100个,橡皮2000个 Random rd = new Random(Guid.NewGuid().GetHashCode()); var num = rd.Next((1000+500+100+2000)); if (num <= 1000) { //铅笔50% } else if (num <= 500) { //钢笔 10% } else if (num <= 100) { //小刀10% } else { //橡皮30% } 如果是设数量随机数,概率和它个数占的比例相同,上边的改成数量也是可以的对吧 。
  • 打赏
  • 举报
回复
Random rd = new Random(Guid.NewGuid().GetHashCode());
var num = rd.Next(100);
if (num <= 50)
{
    //铅笔50%
}
else if (num <= 60)
{
    //钢笔 10%
}
else if (num <= 70)
{
    //小刀10%
}
else
{
    //橡皮30%
}
//这是简单写法,从概率上讲生成的数字是平均的,但实际肯定不能这么简单,当某种类型没了后,就要进行概率修正,或者随机从其它类型中获取奖品

62,270

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

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

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