C语言中随机数的生成范围

编译环境为:vs2013

用于生成从1到3的整数随机数的代码如下:

# includestdio.h

#includetime.h

#includestdlib.h

#define max 3 //这个函数的意义是:随机产生的最大数是3。

#define min 1 //这个函数的意义是:随机生成最小的数为1。

int main()

{

int num

srand(time(0));

num = rand()%(max-min)min;//从这个意义上来说,“%”就是模运算的意思。

Printf("随机数:%d\n ",num);

系统(“暂停”);//这段代码可以让弹出的黑框不会一下子消失。

返回0;

}

扩展数据:

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

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

条件2:密码安全的伪随机性。定义了给定随机样本的一部分和随机算法,随机样本的其余部分无法有效计算。

条件三:真随机性。它被定义为随机样本的不可再现性。实际上,只要给定边界条件,真随机数是不存在的,但如果生成真随机数样本的边界条件非常复杂,很难捕捉(比如计算机的局部背景辐射起伏值),则可以考虑用这种方法计算真随机数。

随机数分为三类:

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

②密码安全伪随机数:同时满足前两个条件的随机数。伪随机数发生器可以通过密码术来保护。

计算出来的。

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

如何用C语言生成一定范围内的随机数? 使用srand((unsigned int)(time(NULL))是一种方法,因为每次运行程序的时间都不一样。

C语言提供的随机数生成器的用法:现在C编译器提供了一个基于ANSI标准的伪随机数生成器函数来生成随机数。它们是rand()和srand()函数。这两个功能的工作过程如下:

1)首先给srand()提供一个种子,种子为无符号int类型,取值范围为0到65535;

2)然后调用rand(),它将根据提供给srand()的种子值返回一个随机数(0到32767之间)。

3)根据需要多次调用rand(),从而不断得到新的随机数;

4)随时可以为srand()提供新的种子,从而进一步“随机化”rand()的输出结果。

以下是0到32767之间的随机数程序:

#包含stdlib.h

#包含stdio.h

#include time.h //使用当前时钟作为种子。

无效总管(无效)

{ int I;

srand((无符号)时间(空));//初始化一个随机数

for(I = 0;i 10I) //打印出10个随机数。

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

}

根据上面的过程,可以容易地获得0和1之间的随机数:

#包含stdlib.h

#包含stdio.h

#包含时间. h

int main()

{ int I;

srand((无符号)时间(空));

for(I = 0;i 10我)

printf("%5.2f\n ",rand()/32767.0);

}

并且生成1到100之间的随机数可以写成如下:

#包含stdlib.h

#包含stdio.h

#包含时间. h

int main()

{ int I;

srand((无符号)时间(空));

for(I = 0;i 10我)

printf("%d\n ",rand()0 1);

}

扩展数据:

高效的c语言编程技巧;

一:用空间换时间

计算机程序最大的矛盾是空间和时间的矛盾。所以,从这个角度来说,我们应该通过逆向思维来考虑程序的效率。

二:解决问题的数学方法

数学是计算机之母。没有数学的基础和底子,就没有计算机的发展。所以在编写程序时,采用一些数学方法,会使程序的执行效率提高一个数量级。

三:使用位操作

实现高效C语言编写的第三招——用位运算减少除法和取模运算。

在计算机程序中,数据的比特是可以运算的最小数据单位,理论上所有的运算和操作都可以通过“比特运算”来完成。一般的位操作是用来控制硬件或者做数据转换的,但是灵活的位操作可以有效的提高程序运行的效率。

参考来源:百度百科-C语言

C语言如何生成一定范围内的随机数? srand((int)time(NULL));设置随机数种子

rand()0;生成一个0-99的随机数。

高级,如果想生成一个16到59之间的数,可以这样写:rand()D 16(其中44是从59-16 ^ 1得到的)。其他情况也一样!

用rand()函数在C语言中生成20-90的随机整数。

20-90有71个数,所以是rand()q 20;

用rand()生成-20-20的随机数

-20-20有41个数,所以是兰德()A-20;

请注意,最好在运行上述代码之前设置以下内容:

srand(time(NULL));//用当前系统时间设置rand()随机序列种子,保证随机序列每次都不一样。

相关文章

发表新评论