Linux下的random()和srand(arg), rand()这两个生成的随机数有什么区别。

Linux下的random()和srand(arg), rand()这两个生成的随机数有什么区别。,第1张

首先我把这三个函数原型给你看一下

long random(void)

int rand(void)

void srand(unsigned seed)

random返回的是一个0到(2^31 - 1)的long类型整数

rand返回的是一个0到RAND_MAX的int类型整数

而你这里产生的随机数序列是一样的,这个很好解释,因为你知道srand,但是你却不知道还有一个srandom,这个函数是为random设置种子的,参数和srand一样。

我的帮助手册上甚至是这么写的:

The random() and srandom() functions have (almost) the same calling sequence

and initialization properties as the rand(3) and srand(3) functions. The

difference is that rand(3) produces a much less random sequence -- in fact,

the low dozen bits generated by rand go through a cyclic pattern. All of

the bits generated by random() are usable. For example, `random()&01' will

produce a random binary value.

=============================

希望我的回答能给你带来帮助

#include<stdio.h>

#include<stdlib.h>

#include<time.h>

int main()

{

int i,j

srand(time(0))

for( i = 0i <1000i++)

for(j = 0i <100i++){

printf("%3d",rand()%100+1)

printf("\n")

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/7567580.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-07
下一篇2023-04-07

发表评论

登录后才能评论

评论列表(0条)

    保存