C语言:产生随机数

目录

1.小范围的随机数生成代码

2.大范围(数)的随机数生成代码


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.二进制左移运算,要考虑数据类型的益出

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值