c语言的获取随机数的函数为rand(),
创新互联建站主营来宾网站建设的网络公司,主营网站建设方案,成都App定制开发,来宾h5微信平台小程序开发搭建,来宾网站营销推广欢迎来宾等地区企业咨询
可以获得一个非负整数的随机数。要调用rand需要引用头文件stdlib.h。
要让随机数限定在一个范围,可以采用模除加加法的方式。
要产生随机数r,
其范围为
m=r=n,可以使用如下公式:
rand()%(n-m+1)+m
其原理为,对于任意数,
0=rand()%(n-m+1)=n-m
于是
0+m=rand()%(n-m+1)+m=n-m+m
即
m=rand()%(n-m+1)+m=n
#include "stdlib.h"
#include "stdio.h"
void main( )
{
int i;
/*将当前时间设置成随机函数的种子,所以每次产生的数都不一样*/
srand( (unsigned)time( NULL ) );
/* 输出10个随机数*/
for( i = 0; i 10;i++ )
printf( “ %d\n”, rand() ); }
你的实数随机数,也是需要保留小数的位数,加入为4位小数,范围是10到50,那么可以生成长整型数0到400000,然后再除以10000,就可以达到要求。
编译环境为:vs2013
产生1到3的整型随机数的代码如下:
#includestdio.h
#includetime.h
#includestdlib.h
#define max 3 //这个函数的意义为:随机生成最大的数为3
#define min 1 //这个函数的意义为:随机生成最小的数为1
int main()
{
int num;
srand(time(0));
num = rand() % (max - min) + min; // 这里的意义,“%”为模运算
printf("随机数为:%d\n", num);
system("pause"); //这个代码可以让弹出的黑框不会一下就消失
return 0;
}
扩展资料:
根据密码学原理,随机数的随机性检验可以分为三个标准:
条件一、统计学伪随机性。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。
条件二、密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。
条件三、真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。
随机数分为三类:
①伪随机数:满足第一个条件的随机数。
②密码学安全的伪随机数:同时满足前两个条件的随机数。可以通过密码学安全伪随机数生成器
计算得出。
③真随机数:同时满足三个条件的随机数。
#include stdlib.h
#include time.h
int main( )
{
int a[100]; /* 存放随机数的数组 */
time_t t1; /* 用于存放时间 */
time(t1); /* 取得当前系统时间 */
srand(t1); /* 设置随机数种子 */
for (i = 0; i 100; i ++) /* 循环生成10个随机数,放到数组a中 */
a[i] = 10 + rand( ) % 90;
/* 数值范围在10到99间,需要不同范围的数据请自行更改 */
...
}