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函数提供不同的种子值,进而产生不同的随机数序列。
参考资料:
在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利用函数生成随机数的方法
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)