.net 指定奖品概率随机抽奖功能实现
来源:互联网 发布:淘宝女打底衫 编辑:程序博客网 时间:2024/05/20 19:33
class Program
{
static void Main(string[] args)
{
int code1 = 0, code2 = 0, code3 = 0, code4 = 0, code5 = 0, code6 = 0, code7 = 0, code8 = 0, other = 0;
for (int i = 0; i <30000; i++)
{
Enumerable.Range(1, 1).ToList().ForEach(x =>
{
string name = Run(list).name;
if (name == "Goods1")
{
code1++;
}
else if (name == "Goods2")
{
code2++;
}
else if (name == "Goods3")
{
code3++;
}
else if (name == "Goods4")
{
code4++;
}
else if (name == "Goods5")
{
code5++;
}
else if (name == "Goods6")
{
code6++;
}
else if (name == "Goods7")
{
code7++;
}
else if (name == "Goods8")
{
code8++;
}
else
{
other++;
}
});
}
Console.WriteLine("code1:" + code1);
Console.WriteLine("code2:" + code2);
Console.WriteLine("code3:" + code3);
Console.WriteLine("code4:" + code4);
Console.WriteLine("code5:" + code5);
Console.WriteLine("code6:" + code6);
Console.WriteLine("code7:" + code7);
Console.WriteLine("code8:" + code8);
Console.WriteLine("other:" + other);
Console.WriteLine("总次数:" + (code1 + code2 + code3 + code4 + code5 + code6 + code7 + code8 + other));
}
private static Random Rnd = new Random();
//奖品列表
private static List<Goods> list = new List<Goods> {
new Goods(){id=1,name="Goods1",code="code1",percent=0.049},
new Goods(){id=2,name="Goods2",code="code2",percent=0.14},
new Goods(){id=3,name="Goods3",code="code3",percent=0.001},
new Goods(){id=4,name="Goods4",code="code4",percent=0.0001},
new Goods(){id=5,name="Goods5",code="code5",percent=0.15},
new Goods(){id=6,name="Goods6",code="code6",percent=0.25},
new Goods(){id=7,name="Goods7",code="code7",percent=0.20},
new Goods(){id=8,name="Goods8",code="code8",percent=0.20},
};
//根据概率随机产生奖品
private static Goods Run(List<Goods> list)
{
return (from x in Enumerable.Range(0, 1000000)
let p = list[Rnd.Next(list.Count())]
let q = Rnd.NextDouble()
where q < p.percent
select p).First();
}
}
/// <summary>
/// 奖品实体
/// </summary>
class Goods
{
/// <summary>
/// 奖品id
/// </summary>
public int id { set; get; }
/// <summary>
/// 奖品代码
/// </summary>
public string code { set; get; }
/// <summary>
/// 奖品名称
/// </summary>
public string name { set; get; }
/// <summary>
/// 概率
/// </summary>
public double percent { set; get; }
public string ToString()
{
return string.Format("id:{0},code:{1},name:{2},percent:{3}", this.id, this.code, this.name, this.percent);
}
}
- .net 指定奖品概率随机抽奖功能实现
- Java根据奖品权重计算中奖概率实现抽奖
- 根据概率抽奖(无奖品数量) -- Java实现
- js 计算奖品概率抽奖
- 实现不同概率抽奖功能
- 实现不同概率抽奖功能
- Java根据概率、剩余奖品数量动态抽奖算法实现,概率总和可以不为100%
- .net 抽奖概率计算
- php按照奖品百分比随机抽奖代码分析
- 【项目实战】——Java根据奖品权重计算中奖概率实现抽奖(适用于砸金蛋、大转盘等抽奖活动)
- 实现不等概率抽奖
- 基于JavaScript与css实现网页随机抽奖功能
- jQuery实现随机抽奖
- jquery实现转盘抽奖--基于奖品转动的转盘
- asp.net 随机抽奖实例
- 转盘抽奖插件概率实现
- 项目4:抽奖程序 分时间段(按时段设置的奖品数为概率)
- 随机抽奖程序的实现
- IE浏览器下web调试工具之--IE WebDeveloper介绍
- find grep
- 数据结构学习笔记(1.大O表示法和顺序表)
- 正则表达式应用:匹配email地址
- 随笔
- .net 指定奖品概率随机抽奖功能实现
- 《TCPIP详解卷一》第四章(ARP地址解析协议)学习笔记
- 工作中写的编译脚本,留着以后想是干什么的。
- Nginx下配置自己的SSL加密网站
- 有一段传奇 叫提高班
- 一个不错的php图片处理类EasyPhpThumbnail Class
- Jode Eclipse 插件的安装与使用
- Android Robotium自动化测试
- windows设置为 NTP server