demo设置了8个奖项,每个奖项可以自定义中奖率,精度为1/10000

        public string PrizeDraw()
{
//奖品以及中奖率
const string prizeString = "奖品一:33,奖品二:30,奖品三:9,奖品四:8,奖品五:7,奖品六:6,奖品七:5,奖品八:2";
//将中奖率*100再取整,放在数组中,并从小到大排序
var prizeArray = prizeString.Split(',').Select(j => new { Prize = j.Split(':')[], Change = (int)(double.Parse(j.Split(':')[])* ) }).OrderBy(j => j.Change).ToArray();
//将中奖率累加,放到字典里
var prizeDictionary = new Dictionary<string, int>();
for (var i = ; i < ; i++)
{
var allChange = ;
for (var j = ; j <= i; j++)
{
allChange += prizeArray[j].Change;
}
prizeDictionary.Add(prizeArray[i].Prize, allChange);
}
//产生一个1-10000的随机数
var rd = new Random();
var rdChange = rd.Next(, );
//找第一个大于随机值的奖项
return prizeDictionary.First(j => j.Value >= rdChange).Key;
}

最新文章

  1. windows下 安装Kali Linux到 U盘的方法
  2. 使用Jackson解析Json示例
  3. CSS 魔法系列:纯 CSS 绘制各种图形《系列六》
  4. findByExample(Object exampleEntity)方法得到的List判断是否为空,不可用(lis != null)
  5. 【secureCRT】永久设置背景色和文字颜色
  6. HDU4539+状态压缩DP
  7. 函数fseg_set_nth_frag_page_no
  8. ueditor使用代码高亮的方法
  9. jquery mobile event
  10. css中em与px
  11. Xcode 真机测试破解方法(转加修改)xcode 4.3 通过
  12. (转)Amoeba for MySQL 非常好用的mysql集群软件
  13. 逐步搭建Lamp环境之rpm软件包管理
  14. SpringMVC常用配置
  15. 第50章:Java操作MongoDB-MongoDB和Spring
  16. Generative Adversarial Nets[CycleGAN]
  17. .net mvc 基类属性覆盖问题
  18. window Form中使用Font Awesome z
  19. webstrom左侧项目栏不显示文件夹问题
  20. tcp的发送端一个小包就能打破对端的delay_ack么?

热门文章

  1. pythonの递归锁
  2. EditText设置可以点击,但是不可以编辑
  3. SpringBoot设置Session失效时间
  4. HDOJ 1217 Arbitrage (最短路)
  5. MySQL软件基本管理
  6. Memcache的安装和使用【转】
  7. Liunx之始
  8. (并发编程)RLock(与死锁现象),Semaphore,Even事件,线程Queue
  9. css效果文字多了就...
  10. 利用表格分页显示数据的js组件bootstrap datatable的使用