关于抽奖概率的问题
今天下午无事,把关于奖品概率的算法给做了下。
原理:其实就是把奖品的概率累加,通过概率的累加计算出来的结果和随机出来的结果进行比对,如果随机出来的结果<=概率累加的结果,则证明中奖
[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
每件事到最后都是好事,如果不是好事,说明还没有到最后
=========================