C语言中取随机数的函数

C语言中取随机数的函数,第1张

1 基本函数

在C语言中取随机数所需要的函数是:

   int rand(void); void srand (unsigned int n);

rand()函数和srand()函数被声明在头文件stdlibh中,所以要使用这两个函数必须包含该头文件:

   #include <stdlibh>

2 使用方法

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlibh头文件中。其值等于32767,或者更大。

srand()函数使用自变量n作为种子,用来初始化随机数产生器。只要把相同的种子传入srand(),然后调用rand()时,就会产生相同的随机数序列。因此,我们可以把时间作为srand()函数的种子,就可以避免重复的发生。如果,调用rand()之前没有先调用srand(),就和事先调用srand(1)所产生的结果一样。

举个例子,假设我们要取得0~10之间的随机整数(不含10本身):

   / 例1:不指定种子的值 /

   for (int i=0; i<10; i++) { printf("%d ", rand()%10); }

    每次运行都将输出:1 7 4 0 9 4 8 8 2 4

   / 例2:指定种子的值为1 /

   srand(1); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }

    每次运行都将输出:1 7 4 0 9 4 8 8 2 4

    例2的输出结果与例1是完全一样的。

   / 例3:指定种子的值为8 / srand(8); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }

    每次运行都将输出:4 0 1 3 5 3 7 7 1 5

    该程序取得的随机值也是在[0,10)之间,与srand(1)所取得的值不同,但是每次运行程序的结果都相同。

   / 例4:指定种子值为现在的时间 / srand((unsigned)time(NULL)); for (int i=0; i<10; i++) { printf("%d ", rand()%10); }

    该程序每次运行结果都不一样,因为每次启动程序的时间都不同。另外需要注意的是,使用time()函数前必须包含头文件timeh。

   3 注意事项

求一定范围内的随机数。

    如要取[0,10)之间的随机整数,需将rand()的返回值与10求模。

   randnumber = rand() % 10;

    那么,如果取的值不是从0开始呢?你只需要记住一个通用的公式。

    要取[a,b)之间的随机整数(包括a,但不包括b),使用:

    (rand() % (b - a)) + a

伪随机浮点数。

    要取得0~1之间的浮点数,可以用:

    rand() / (double)(RAND_MAX)

    如果想取更大范围的随机浮点数,比如0~100,可以采用如下方法:

    rand() /((double)(RAND_MAX)/100) 其他情况,以此类推,这里不作详细说明。

使用随机数公式rand(),"=最小值+Rand()%(最大值-最小值+1)”。

公式是:"=a+rand()%(b-a+1)”。

rand()函数

定义函数:int rand(void)。

函数功能:产生随机数。

1)使用该函数首先应在开头包含头文件stdlibh。

#include<stdlibh>(C++建议使用#include<cstdlib>,下同)

(2)在标准的C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlibh 中定义的一个整数,它与系统有关。

(3)rand()函数没有输入参数,直接通过表达式rand()来引用;例如可以用下面的语句来打印两个随机数:

printf("Random numbers are: %i %i\n",rand(),rand());

(4)因为rand()函数是按指定的顺序来产生整数,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数。

(5)为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过伪随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlibh)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。

扩展资料:

srand()

srand函数是随机数发生器的初始化函数。原型:void srand(unsigned int seed);srand和rand()配合使用产生伪随机数序列。

rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。

srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。

通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。

参考资料:

rand()-

在c语言中要产生随机数可以用rand函数。

默认情况下这个函数产生的随机整数的范围是[0,RAND_MAX]。

RAND_MAX是一个预定义的宏,其值等于平台上int类型的最大值。

可以使用如下公式来产生一个[min,max]之间的随机整数:

rand()%(max-min+1)+min

下面这个例子可以产生10个[1,100]的随机数,并输出了它们:

#include <stdioh>

#include <stdlibh>

#include <timeh>

int main()

{

int i;

//初始化随机数种子

srand(time(NULL));

//printf("%d\n\n",RAND_MAX);

for(i=0;i<10;i++)

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

return 0;

}

下面是运行结果的截图:

  在excel中有时候会用到随机函数,其中rand函数是一个可以生成随机数的函数,成数范围是大于等于0小于1,下面就演示随机RAND函数的用法,很实用,很方便!

 工具/原料excel

 方法/步骤1RAND()只能显示0-1之间的随机数,但是加入我们用RAND()90,那么是不是就是0-90之间的随机数了呢,这个应该不难理解,同时我们在用RAND()90+10是不是就是10-100之间的随机数了呢。

 2意思就是如果我们要取a-b之间的随机数,那么我们就只需要输入=RAND()(b-a)+a就可以了。

01

打开excel,在公式栏输入公式 =RAND(),

02

按回车后,就可以得到一个随机数了,从结果上也可以看出,这个函数得到的数是一个从0到1之间的随机数据。

03

一般我们要获取随机数,是要得到一个1到10,或1到100之间的整数,为了达到这个目的,我们可以将函数得到的结果 x10, 或x100,然后用int函数来取整数。在公式栏上输入新的公式,=INT(RAND() 10)

04

按回车后得到结果,就可以得到一个从0到10之间的整数了。

在EXCEL中使用函数RAND()(最大值-最小值)+最小值即可得到5-18范围内的随机数了,如下图 *** 作所示:

1、在任一EXCEL单元格数输入“=RAND()(18-5)+5”;

2、输入完成后按回车,即可得到5-18间的随机数

3、选择生成的随机数,进行填充后就可以很多5-18之间的随机数,如下图所示:

扩展资料

srand((unsigned)time(NULL))则使用系统定时/计数器的值作为随机种子。每个种子对应一组根据算法预先生成的随机数。

所以在相同的平台环境下,不同时间产生的随机数会是不同的,相应的,若将srand(unsigned)time(NULL)改为srand(TP)(TP为任一常量),则无论何时运行、运行多少次得到的“随机数”都会是一组固定的序列,因此srand生成的随机数是伪随机数。

库函数中系统提供了两个函数用于产生随机数:srand()和rand()。 原型为:

函数一:int rand(void);

返回一个[0,RAND_MAX]间的随机整数。

函数二:void srand(unsigned seed);

参数seed是srand()的种子,用来初始化srand()的起始值。

—rand函数

  在excel2007中,想要生成随机数字时,可以使用函数来实现。下面就跟我一起来看看吧。

excel2007使用随机数函数的步骤

 启动 Excel 2007,在单元格输入=ran,下面就会出现3个函数选择,我们选择第二项randbetween。

 选择好了之后,会出现函数参数的使用。

 我们输入10,100表示随机生成10-100之间的自然数。

 回车,即可产生一个数。

 利用单元格填充的 方法 可以快速完成多个单元格随机数字的填充。

excel2007随机数函数相关 文章 :

1 excel2007怎么使用RANDBETWEEN随机数函数

2 excel 随机数函数的使用教程

3 excel用函数产生随机数的方法

4 excel利用函数生成随机数的方法

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

原文地址: http://outofmemory.cn/langs/11669409.html

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

发表评论

登录后才能评论

评论列表(0条)

保存