目录
1.小范围的随机数生成代码
a.需要运用两个头文件: stdlib.h time.h
b.计算机时间提取time(NULL)
c.种子设置语句srand(unsigned time(NULL) )
d.rand()产生0-RAND_MAX(32767)之间的随机数
#include <stdio.h>
#include <stdlib.h>
#include <time.h>、
void main()
{
srand((unsigned)time(NULL)); //以计算机的时间为种子,需调用头文件time.h;若是循环产生随机数,则该语句应在循环外
int a = rand() % 100; // 100 以内的随机数
printf("a=%d\n", a);
return 0;
}
注:
1.产生循环多个随机数,种子语句应该在循环体之外
2.通过求余(%)数进行特定范围的随机数,范围较大时,概率并不均等。原因细看链接:
C++ 使用rand()函数生成大随机数最佳方法_怀尘先森的博客-CSDN博客_rand生成大随机数
3.可以对随机数结果加定值k,进行整个区间平移k
2.大范围(数)的随机数生成代码
a.基本步骤与小范围类似
b.二进制左移运算扩大随机数范围
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void main()
{
srand((unsigned)time(NULL)); //以计算机的时间为种子,需调用头文件time.h ,在循环体之外
for (int i = 0; i < 100; i++)
{
int big_rand;
big_rand = (rand() << 15) + rand();//利用二进制左移(<<),扩大随机数范围
printf("a=%d\n", big_rand % 10000);
}
return 0;
}
注:
1.二进制左移运算,要考虑数据类型的益出