关于抽奖概率的问题
今天下午无事,把关于奖品概率的算法给做了下。
原理:其实就是把奖品的概率累加,通过概率的累加计算出来的结果和随机出来的结果进行比对,如果随机出来的结果<=概率累加的结果,则证明中奖
[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]
    写个博客不容易,请转载的时候备注下原文出处,谢谢
作者:keepnode
博客地址:http://www.cnblogs.com/woaic
每件事到最后都是好事,如果不是好事,说明还没有到最后
=========================
作者:keepnode
博客地址:http://www.cnblogs.com/woaic
每件事到最后都是好事,如果不是好事,说明还没有到最后
=========================
 
                    
                     
                    
                 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号