C语言游戏中奖概率算法

前几天玩游戏,有个手机游戏有50%几率中奖,我就在想他是怎么编程出来的。
比如说,有20%几率中奖。中与不中怎么用C语言表达?
我给个我的思路,随机给个100以内的数,然后判定20以下为中,20以上为不中。
关键是我不懂用C语言怎么表达(主要是随机给数不会)。
或者用其他的思路也行。比如现在的流行的编程思路是?

从思想上来所,随机变量x有两个值,0表示不中奖,1表示中奖。如果进行N次实现,如果出现1的次数 / N = p%的话,我们说,x为1的概率为p%

STDLIB 中 rand() 函数的返回值,我们可以认为是服从平均分布的随机变量的值。通过不等式的变换,我们可以得到任意范围内,平均分布的随机变量。

比如说,20%的中奖率,我可以定义, 取[0, 99]的随机整数,如果该值为[0, 20) 则中奖,否则不中,那么中奖率就为 20%
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-03
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
int main()
{
srand((unsigned)time(NULL));
int i;
int s = 0;
for(i = 0; i < 100; i++)
if(rand()% 100 < 20)
s++;
printf("中奖率为%d%%\n",s);
return 0;
}

这是随机数的用法,你可以借鉴一下

本回答被提问者和网友采纳
相似回答