excel随机函数的使用方法

excel随机函数的使用方法,第1张

  在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就可以了。

rand(产生随机数)

表头文件: #include<stdlibh>

定义函数 :int rand(void)

函数说明 :

因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机的,rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。rand ()产生的是假随机数字,每次执行时是相同的。若要不同,以不同的值来初始化它初始化的函数就是srand()。

返回值:

返回0至RAND_MAX之间的随机整数值,RAND_MAX的范围最少是在32767之间(int),即双字节(16位数)。若用unsigned int 双字节是65535,四字节是4294967295的整数范围。

0~RAND_MAX每个数字被选中的机率是相同的。

范例:

/ 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考

srand()/

#include<stdlibh>

main()

{

int i,j;

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

{

j=1+(int)(100rand()/(RAND_MAX+10));

printf("%d ",j);

}

}

执行:

9 4 8 8 10 2 4 8 3 6

9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数

公式=RAND()产生一个0~1之间的随机数,例子:

如果需要产生别的范围的数据,需要RAND()数量+起点,结果可以取整,例如:

它的返回值就是求取随机的值,所以如果没有对数有要求,直接这样定:

printf("%d", rand());就能输出一个随机数但如果对数有要求,如小数或在一定值以内:

小数:rand()+rand()/1000 //1000后面的0必须写,100是说明求两位小数,你可以自己加大

一定范围:rand()%10+0 //10是顶和底的差,0是底,就是说求10到20之间的数就是:rand()%10+10

但是调用它必须先调用srand()来生成随机种子,如果你没调用它,系统会自动调用但是srand是有个参数的,种子就是根据这个参数来定的,所以这个参数决定着生成的随机数如果你在代码里写死了它:srand(10);那这样rand生成的随机数就也被定格在了一定量,所以不要这样用要这样写:

srand(time(NULL));time的返回值是当前系统时间因为时间不同,所取的数值也就不同这样随机数就真正的随机了

time在中声明

rand,srand在中声明

  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是rand()的种子,用来初始化rand()的起始值。

  但是,要注意的是所谓的“伪随机数”指的并不是假的随机数。其实绝对的随机数只是一种理想状态的随机数,计算机只能生成相对的随机数即伪随机数。计算机生 成的伪随机数既是随机的又是有规律的 —— 一部份遵守一定的规律,一部份则不遵守任何规律。比如“世上没有两片形状完全相同的树叶”,这体现到了事物的特性 —— 差异性;但是每种树的叶子都有近似的形状,这正是事物的共性 —— 规律性。从这个角度讲,我们就可以接受这样的事实了:计算机只能产生伪随机数而不是绝对的随机数。

  

C库里的rand应该是无参数的,返回一个0到RAND_MAX之间的正整数。

如果你要限制大小,只能用取余,比如

int n = rand() % 16,则返回一个0到15之间的随机数。

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存