(一)C语言随机函数定义
C语言随机函数主要用于实现一组随机数的生成。
编程有时需要随机输入一些数,这时调用随机函数可以完成此项命令.
# include <stdio.h>--》C语言头文件
# include <stdlib.h>-》包含srand函数的函数
# include <time.h> /*包含时间处理的函数/ ->time(人生天地之间,若白驹过隙,忽然而已。:时间每一时都在变,故借时间之变实现随机数)
srand((unsigned int)time(NULL)); /*随机函数种子*/ 时间在改变,使时间戳改变,故随机范围改变。
#include <stdio.h>
#inclde <stdlib.h>
int main(){
srand(100);//表示含义:随机数的最小值是100,固定生成
srand((unsigned int)time(NULL));//随机数随时变
return 0;
}
(二)随机数
函数int rand( void );返回的是一个界于0~32767(0x7FFF)之间的伪随机数,包括0和32767,但 只要生成了随机数,每一次运行均只是该随机数。原因如下:
C预先 生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以通过srand()函数来改变指针位置。
固定随机数范围常用形态:
取余法: X=rand()%a等价于:X∈[0,a-1],可以通过加减实现范围例如:X∈[A,B]等价于X=rand()%(B+1A)+A。
整倍数法:X=rand()%a*2等价于X是2的倍数。
#include <stdio.h>
#include <stdlib.h>
int main()
{
//取余方式固定范围
int X=rand()%3;//X∈[0,2]
int Y=rand()%3+2;//Y∈[0+2,2+2]
//随机数想要整数倍
int Z=rand()%100*3;//300以内的3的倍数的随机数
return 0;
}
(三)简单抽奖问题
比如想要X人之间抽个奖,1%:神秘大奖,2%:一等奖,5%:二等奖,其余:谢谢鼓励奖;
#include <stdio.h>
#include <stdlib.h>
int main(){
int num=rand()%100;//可以用随机数代替概率,百分之1:在[0,99]选一个,同理
int count=1;
while(1_
{
if(num==0) printf("第%d次 抽中大奖\n",num);//保底:可以加限制条件
eles if (num>=1&&num<=5) printf("第%d次 抽中一等奖",num);
eles if (num>=10&&num<=30) printf("第%d次 抽中二等奖\n",num);
else
printf("第%d次 鼓励鼓励奖\n",num);
}
return 0;
}