1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > C语言中使用rand()函数产生随机数用法

C语言中使用rand()函数产生随机数用法

时间:2023-06-18 09:53:54

相关推荐

C语言中使用rand()函数产生随机数用法

srand和rand函数的用法

参考链接:关于 time() 函数

关于 rand() 函数

需要的头文件是<stdlib.h>

rand()函数说明产生一个范围在0~RAND_MAX之间的整数,RAND_MAX一般是 0 ~ 32767之间(两个字节16位),若是unsigned int 双字节是65535,四个字节是 4294967295 的整数范围。

需要注意的是,单独一个 rand() 函数产生的是假随机数,同一个程序多次运行产生的结果是一样的。若要不同,则需要借助 srand() 函数来为其进行初始化,产生随机数种子。rand() 在调用的时候,默认的随机数种子是 1。只有使用 srand() 每次得到的不同的随机数种子,返回的结果才不同。

3.srand() 函数说明:设置 rand() 函数产生随机数时的随机数种子。参数必须是一个整数,一般使用time(NULL)(其中的 NULL 可以用 ASCII 码中的 0 代替) ,该函数没有返回值。如果每次 srand() 函数的参数相同,那么 rand() 函数产生的随机数也就相同。

4.一般使用样例

#include <cstdio>#include <cstdlib>#include <ctime>using namespace std;int main(){随机产生10个 0 ~ 10 的随机数srand((int)time(0));for( int i = 0; i < 10; i++ ){int num = (int)(10.0 * rand() / RAND_MAX + 1);printf("%d ", num);}return 0;}

解释一下,

time() 函数说明:

time()函数的用途是返回一个值,即格林尼治时间1970年1月1日00:00:00到当前时刻的时长,时长单位是秒。

time()函数是C语言标准库stdlib中的函数。因此要使用time(),必须在程序中包含<time.h>文件。

time_t time( time_t *t ) : 该函数返回值是一个 time_t 类型的数, 参数是一个指向 time_t 类型的指针。也可以用空指针表示,也就是0。

注意:这个 srand() 函数只能放在循环外面,因为他只是给第一次循环中的 rand() 提供了一个随机数种子,后面每次循环都是以上次循环中 rand() 函数返回的结果作为随机数种子

当然用 rand() % n 也可以产生一个 [0, n) 范围的随机数,但是用 ( int )( n * rand() / RAND_MAX + 1 ) 来产生更加均匀。

产生一个 [a, b] 范围的随机数

num = a + rand() % ( b - a + 1)不加 1 的话范围是 [ a, b ), 至于为什么是这样 ,稍微想一下就知道了^_^

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。