C语言中怎样生成随机数

C语言中怎样生成随机数,第1张

在VC中设计到随机数有两个函数

srand() and rand()

srand() 的作用是是一个种子,提供每次获得随机数的基数而已,rand()根据种子而产生随机数

注意

1:srand() 里的值必须是动态变化的,否则得到的随机数就是一个固定数

2:其实可以不用写srand() ,只用rand()就可以了,省事,简单,例子如下

如果我们想得到一个 0-60的随机数那么可以写成

int i;

i=rand()%60;

就可以了。

当然最好有个统一的标注如下:

int i;

srand((unsigned)time( NULL ));

i=rand()%60;

这样就OK了。

#include <stdioh>

#include<stdlibh> //生成随机数用

#include<timeh> //利用时间生成种子

#include<mathh> //利用次方算2^(t-1)

//一共要写2^(t-1)行

void main()

{

int i;

long t,tem1,tem2;

scanf("%ld",&t);

t=pow(2,t-1);

srand((unsigned long)time(0)); //生成种子

for(i=1;i<=t;i++) //生成 2^(t-1)行随机数

{

tem1=rand()1000000/RAND_MAX; //生成第一个随机数

printf("%ld ",tem1); //打印

tem2=rand()1000000/RAND_MAX; //生成第二个随机数

while(tem2>tem1) //当第二个随机数大于第一个时,重新生成

tem2=rand()1000000/RAND_MAX;

printf("%ld\n",tem2); //打印第二个

}

return;

}

用rand函数吧,好久不用C语言,不太记得,貌似是int a=rand()% X(X即范围)这是伪随机数

#include<timeh>

srand(time(NULL));使用前用这条语句初始化

使用int a=rand() / RAND_MAX n;

就得到真正的随机数

楼主你好!

很高兴回答你的问题!

#include<stdioh>

#include<windowsh>

#include<timeh>

#include<stdlibh>

int main()

{

int num;

srand((unsigned)time(NULL));

num = rand()%100+1;

printf("%d\n",num);

return 0;

}

上面的是参数一个1到100之间的随机数的例子!主要用到rand()函数,它能够随机参数一个0到unsigned int的最大值之间的一个随机数,我们可以通过%控制随机数参数的范围!在使用rand()需要调用srand()种子器,不然你每次得到都是同一个数!具体用法可以去网上查查!

希望我的回答对你有帮助!

望采纳!谢谢!

编译环境为:vs2013

产生1到3的整型随机数的代码如下:

#include<stdioh>

#include<timeh>

#include<stdlibh>

#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");  //这个代码可以让d出的黑框不会一下就消失

return 0;

}

扩展资料:

根据密码学原理,随机数的随机性检验可以分为三个标准:

条件一、统计学伪随机性。统计学伪随机性指的是在给定的随机比特流样本中,1的数量大致等于0的数量,同理,“10”“01”“00”“11”四者数量大致相等。类似的标准被称为统计学随机性。满足这类要求的数字在人类“一眼看上去”是随机的。

条件二、密码学安全伪随机性。其定义为,给定随机样本的一部分和随机算法,不能有效的演算出随机样本的剩余部分。

条件三、真随机性。其定义为随机样本不可重现。实际上只要给定边界条件,真随机数并不存在,可是如果产生一个真随机数样本的边界条件十分复杂且难以捕捉(比如计算机当地的本底辐射波动值),可以认为用这个方法演算出来了真随机数。

随机数分为三类:

①伪随机数:满足第一个条件的随机数。

②密码学安全的伪随机数:同时满足前两个条件的随机数。可以通过密码学安全伪随机数生成器

计算得出。

③真随机数:同时满足三个条件的随机数。

c语言的获取随机数的函数为rand(),

可以获得一个非负整数的随机数。要调用rand需要引用头文件stdlibh。

要让随机数限定在一个范围,可以采用模除加加法的方式。

要产生随机数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

以上就是关于C语言中怎样生成随机数全部的内容,包括:C语言中怎样生成随机数、C语言产生随机数、如何在C语言中生成一定范围内的随机数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/web/9594367.html

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

发表评论

登录后才能评论

评论列表(0条)

保存