关于抽奖概率的问题

今天下午无事,把关于奖品概率的算法给做了下。 原理:其实就是把奖品的概率累加,通过概率的累加计算出来的结果和随机出来的结果进行比对,如果随机出来的结果<=概率累加的结果,则证明中奖 [code lang="csharp"] /// <summary></pre> <em id="__mceDel">/// 开始抽奖 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void button1_Click(object sender, EventArgs e) { //四个奖品概率 double jiangpin1 = Convert.ToDouble(textBox1.Text); double jiangpin2 = Convert.ToDouble(textBox2.Text); double jiangpin3 = Convert.ToDouble(textBox3.Text); double xiexie = Convert.ToDouble(textBox4.Text); //所有奖项的奖品概率 double[] allgailv=new double[]{jiangpin1,jiangpin2,jiangpin3,xiexie}; //奖品概率 int maxCount = 100000000; Random random=new Random(); int jieguo=random.Next(maxCount); int nowgailv = 0; for (int i = 0; i < allgailv.Length; i++) { nowgailv += Convert.ToInt32(allgailv[i] * maxCount); if (jieguo<=nowgailv)//把奖品概率相加和随机出来的数字进行比对,如果随机出来的结果小于或等于奖品概率相加则是几等奖 { lblResult.Text = "恭喜您中奖:您抽中的奖品的索引:" + i + ",中奖的奖品值:" + jieguo; break; } } }</em> <pre> [/code]
posted @ 2013-06-03 18:23  keepnode  阅读(626)  评论(0编辑  收藏  举报