随机函数rand使用方法2到99,怎么用RAND函数产生50-100的随机数。
随机函数rand使用方法2到99,怎么用RAND函数产生50-100的随机数。详细介绍
本文目录一览: 怎么用RAND函数产生50-100的随机数。
如何产生设定范围内的随机数
由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从X~Y的数呢?
从X到Y,有Y-X+1个数,所以要产生从X到Y的数,只需要这样写:
k=rand()%(Y-X+1)+X;
这样,就可以产生你想要的任何范围内的随机数了。
下面代码就能实现你想要的随机数:请看
1 #include
2 #include
3 #include
4 int main( )
5 { int i;
6 srand( (unsigned)time( NULL ) );
7 for( i = 0; i < 10;i++ )
8 printf( "%d\n", rand()%100+50);
9 return 0;
10 }
// Try:在微软公司的Excel表任意单元格输入:=ROUNDUP(RAND()*(100-50)+50,0)即可得到50--100的正整数。
#include
#include
#include
main(){ srand((unsigned)time(NULL));//没有这句会一直重复随机同一个数 int a; a=rand()%51+50; printf("%d",a);}
int i = rand() % 51 + 50;
方法:可以在Excel中利用Rand函数生成50-100的随机数,方法如下:
1、新建一个Excel文件并点击打开,如下图所示;
2、进入excel工作区后,在任意单元格中输入=RAND()*(最大值-最小值)+最小值,如输入=RAND()*(100-50)+50,如下图所示;
3、输入完成后点击回车就可以得到第一个随机数字,如下图所示;
4、选择该单元格,将鼠标置于该单元格右下角,然后往下拉动就可以得到很多在50—100的随机数字了,如下图所示。
C语言中如何用rand()函数产生20-90的随机整数
c语言主要通过rand()函数实现随机数,要产生[n,m]的随机数,只要通过表达式rand()%n+m即可实现。测试代码如下,
//输出20个[20,90]的随机数
#include
#include
#include
int main()
{
int n=20;
srand(time(NULL));//用系统当前时间设置rand()随机序列种子,保证每次运行随机序列不一样
while(n--)
{
printf("%d\n",rand()%71+20);//产生20-90的随机数,rand()%71范围为0-70
}
return 0;
}
int rand( void );函数返回一个在零到RAND_MAX(32767)之间的伪随机整数。通常用srand( time(NULL) )设置rand()随机序列种子以保证每次运行程序产生的随机序列不一样 。
20-90共有71个数字
x=rand()%71+20;
rand()%71产生0-70的随机数字
#include
#include
int myrand()
{
return abs(rand())%71+20;
//abs取绝对值,确保得到正数,rand()%71得到-70到+70之间的整数
//所以最后得到的范围是 0+20 到70+20的范围的整数
}
int main()
{
int number;
number = myrand();
//自定义输出,或者使用number
}
rand和srand的用法
首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。
rand(产生随机数)
表头文件: #include
定义函数 :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
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
执行:
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数
srand(设置随机数种子)
表头文件:#include
定义函数:void srand (unsigned int seed);
函数说明:
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
范例
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include
#include
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
执行:与rand范例比较
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
又或:
用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))产生一个0到n之间的随机数
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\n\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
除以上所说的之外,补充一点就是srand这个函数一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的数字。
MSDN中的例子。
// crt_rand.c
// This program seeds the random-number generator
// with the time, then displays 10 random integers.
//
#include
#include
#include
int main( void )
{
int i;
// Seed the random-number generator with current time so that
// the numbers will be different every time we run.
//
srand( (unsigned)time( NULL ) );
// Display 10 numbers.
for( i = 0; i < 10;i++ )
printf( " %6d\n", rand() );
printf("\n");
// Usually, you will want to generate a number in a specific range,
// such as 0 to 100, like this:
{
int RANGE_MIN = 0;
int RANGE_MAX = 100;
for (i = 0; i < 10; i++ )
{
int rand100 = (((double) rand() /
(double) RAND_MAX) * RANGE_MAX + RANGE_MIN);
printf( " %6d\n", rand100);
}
}
总结:
我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是
初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,
那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数的吧,可能这个起始时间不正确,你查一下对不对吧,C还提供了另一个更方便的函数, randomize()
原形是void randomize(),功能是用来始初rand() 的种子的初始值,而且该值是不确定的,它相当于srand((unsign)(time(NULL)) 不过应注意的是randomize()的功能要通过time来实现所以在调用它时头文件要包含time.h罢了
如何用rand函数生产一个范围内的随机整数?
可以直接使用RANDBETWEEN函数生成一定范围内的随机数。
可以使用RAND函结合其他函数来生成一定范围内的随机数。
RANDBETWEEN【语法】
RANDBETWEEN(bottom,top)
Bottom参数: RANDBETWEEN将返回的最小整数。
Top参数: RANDBETWEEN将返回的最大整数。
示例:
=RANDBETWEEN(1,100)大于等于1小于等于100的一个随机整数(变量) =RANDBETWEEN(-1,1)大于等于-1小于等于1的一个随机整数(变量)
注意:Randbetween函数只会生成随机整数。如需要随机小数可结合RAND函数来使用。
2003版以上的Excel中,直接在单元格输入=RAND()得到大于等于0,小于1的随机数
其他生成方法示例:
生成A与B之间的随机数字(A≤随机数
<b)在第一个格子中输入:=rand()*(b-a)+a如,生成1到10之间的随机数字,输入:=rand()*9+1其余数字,将鼠标置于该格子右下角,变为十字时,向下拖拉即可。
生成A与B之间的随机整数(A≤随机数
<b)在第一个格子中输入:=int(rand()*(b-a)+a)如,生成1到10之间的随机整数,输入:=int(rand()*9+1)其余数字,将鼠标置于该格子右下角,变为十字时,向下拖拉即可。
生成A与B之间的随机数字(A≤随机数≤B)在第一个格子中输入:=RAND()*(B-A+1)+A如,生成1到100的随机数字,输入:=RAND()*100+1
1、用randbetween函数生产一个范围内的随机数值整数部分,公式:=RANDBETWEEN(最小值,最大值);
2、用rand函数生产随机数字(小数部分),公式=RAND();
3、用round函数处理小数点位数,公式=round(数值,保留小数点后几位有效数)
4、举例:假设生成0到100之间的随机数,保留小数点后2位有效数。整个公式为:
=round(randbetween(0,99)+rand(),2)
扩展资料:
RANDBETWEEN函数用于返回大于等于指定的最小值,小于等于指定最大值之间的一个随机整数。每次计算工作表时都将返回一个新的数值。
RANDBETWEEN(bottom,top)
Bottom参数: RANDBETWEEN将返回的最小整数。
Top参数: RANDBETWEEN将返回的最大整数。
举例:
1、公式=RANDBETWEEN(1,100),意为大于等于1小于等于100的一个随机整数(变量)
2、公式=RANDBETWEEN(-1,1),意为大于等于-1小于等于1的一个随机整数(变量)
参考资料:
百度百科-RANDBETWEEN函数
</b)在第一个格子中输入:=int(rand()*(b-a)+a)如,生成1到10之间的随机整数,输入:=int(rand()*9+1)其余数字,将鼠标置于该格子右下角,变为十字时,向下拖拉即可。
</b)在第一个格子中输入:=rand()*(b-a)+a如,生成1到10之间的随机数字,输入:=rand()*9+1其余数字,将鼠标置于该格子右下角,变为十字时,向下拖拉即可。
excel随机函数的使用方法
在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】就可以了。
怎样用Random产生一个在2-9之间的随机数
楼上正解,random里面只可以产生0到任意数的一个随机,最小值要想固定,只能后面加上一个数,1楼方法你可把7换成8,这样就是0到8之间的所有整数,不包括8,再加上2,就是0到10之间所有整数,不包括10,那么9就是最大整数
Random rd = new Random();
rd.nextInt(2,9);这样就可以了。
Random random=new Random();
int num=random.nextInt(7)+2;
包括2,不包括7.
参考如下:
Random randObj = new Random();
int start=2;//随机数可取该下界值
int end=10;//随机数不能取该上界值
for( int j= start ; j < end; j++ ){
Console.Write( "{1,11} ",randObj.Next( start, end) );
}
这样就可以生成2-10之间的随机数了;
如果把start=1和end=1000就可以了 产生1到1000之间的随机数。
C语言中的rand()函数怎么用
它的返回值就是求取随机的值,所以如果没有对数有要求,直接这样定:
printf("%d", rand());就能输出一个随机数.但如果对数有要求,如小数或在一定值以内:
小数:rand()+rand()/100.0 //100.0后面的.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((int)time(NULL));// 移到循环的外面
增加了每次出拳的显示,便于查看
增加了局数的显示
#include
//为了使用srand、rand函数必须使用该头文件#include
//要使用time()必须使用该头文件 #include
int main(){char in; //出错,产生的随机数永远一样。 srand((int)time(NULL));// 移到循环的外面 int a=1; do{ int user; //定义玩家和电脑出拳 int uwin,ulos,allwin;//定义玩家的胜利参数,失败参数,平局参数 int cwin,clos,loop; //定义电脑的胜利参数和失败参数,不需要定义平局参数,可以直接取用allwin int computer=0; uwin=0; ulos=0; allwin=0; cwin=0; clos=0; computer = rand()%3+1; //随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3) printf("\n【第 %d 局】\n 请出拳:",a); a++; scanf("%d",&user); printf("这一局,您出的是【%d】,电脑出的是【%d】!\n",user,computer); switch(user) { case 1: if(computer==1) { printf("这一局,您出的是【石头】,电脑出的是【石头】,好巧哦,是平局耶!\n"); allwin+=1; } }}while(1);}
函数rand()是随机数生成器
有两个函数用于产生随机数:srand()和rand()。
函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[0, RAND_MAX(0x7fff)]间的随机整数。
函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。
你把产生随机数的
srand((int)time(NULL));//srand作为rand的种子()内为系统时间;
computer = rand()%3+1;//随机产生1-3任意一个整数,rand()%3是随机产生0-2之间的整数(包含0但不包含3)
这2行丢进去
或者把下面那一行丢进while 确保每次种子不一样或者随机不一样
首先得有
srand()函数
然后才能用rand()函数产生随机数,如:
rand()%a+b;
这个a表示产生的随机数的范围,即max-min+1=a
这个b表示能产生的最小的随机数。
rand()
rand()函数用来产生随机数,但是,rand()的内部实现是用线性同余法实现的,是伪随机数,由于周期较长,因此在一定范围内可以看成是随机的。
rand()会返回一个范围在0到RAND_MAX(至少是32767)之间的伪随机数(整数)。
在调用rand()函数之前,可以使用srand()函数设置随机数种子,如果没有设置随机数种子,rand()函数在调用时,自动设计随机数种子为1。随机种子相同,每次产生的随机数也会相同。
rand()函数需要的头文件是:
rand()函数原型:int rand(void);
使用rand()函数产生1-100以内的随机整数:int number1 = rand() % 100+1。
srand()
srand()函数需要的头文件仍然是:
srand()函数原型:void srand (usigned int seed);
srand()用来设置rand()产生随机数时的随机数种子。参数seed是整数,通常可以利用time(0)或getpid(0)的返回值作为seed。
使用rand()和srand()产生1-100以内的随机整数:
srand(time(0));
int number1 = rand() % 100+1。
请教函数RAND()的用法
基本用法:2003版以上的Excel中,直接在单元格输入=RAND()
得到大于等于0,小于1的随机数
其他变形生成方法:
①生成A与B之间的随机数字(A
<随机数<b)
在第一个格子中输入:=RAND()*(B-A)+A
如,生成1到10之间的随机数字,输入:=RAND()*9+1
其余数字,将鼠标置于该格子右下角,变为十字时,向下拖拉即可。
从这个例子中我们可以看到,取随机数时,是从1开始到10(9+1)之间取的。加号后面的1表示取随机数的区间的起点。加号前面的9表示这个区间的长度。简而言之,*号后面的表示长度,+后面的表示起点。
但是既然这个长度可以正向的,那么也可以取反向的。比如:=rand()*-9+1,那么,起点还是1,-9就表示长度仍然为9,不过方向反了。也就是从1开始到-8之间的随机数。
在rand()*(-0.2-0.2)+0.2中,+号后面的0.2表示起点,()中的-0.2-0.2就是-0.4,既表示长度,也表示方向,整个式子就表示从0.2开始,到反方向0.4之间取随机数,也就是-0.2到0.2之间。(-0.2-0.2)仅仅是一个运算,它总是有结果的。
不知道这样的答案你满意不?
*是乘;+是加。
(-0.2-0.2)实际上就是-0.4.
RAND()是生成大于等于0,而小于1的随机数。
当RAND()返回最小值0时,0*(-0.4)结果为0,0+0.2=0.2
当RAND()返回最大值0.99999……时,四舍五入后等于1,1*(-0.4)结果为-0.4,-0.4+0.2=-0.2
所以生成的是-0.2到0.2之间的数值。
rand()函数生成的随机数在0-1之间。
我们要生成a到b之间随机数,往往我用下面的公式:
RAND()*(a-b)+b
表示生成在a到b之间的随机数。
所以:
RAND()*(-0.2-0.2)+0.2中的a为-0.2,b为0.2
表示生成的随机数在-0.2到0.2之间。
RAND()的值为大于等于 0 及小于 1的随机数,(-0.2-0.2)=-0.4,RAND()*(-0.4)为大于-0.4至小于等于0的随机数,加0.2后为大于-0.2至小于等于+0.2的随机数。ROUND(x,4)则是对X取四位小数。
EXCEL中RAND()函数的用法:
RAND函数没有参数,返回大于等于0小于1的随机数;
有时需要返回的随机数在某个范围,用RAND()*(上限-下限)+下限,因为RAND()小于1,所以结果值在上下限之内,比如-0.2~0.2之间:=RAND()*(0.2-(-0.2))+(-0.2),整理下去掉负号,可以用:=RAND()*(0.2+0.2)-0.2,也可以直接用:=RAND()*0.4-0.2;
这样取出来的小数位数太多了,如果想保留小数位数,可以用ROUND函数:=ROUND(RAND()*(0.2+0.2)-0.2,4);
现在的版本,有了RANDBETWEEN函数,可直接按上下限取整数,如果要取小数范围,可将整数范围扩大到比小数位小1的量级,再除以小数位数的量级:=RANDBETWEEN(-2000,2000)/10000,这公式与上面的公式同样达到要求。
</随机数
随机函数rand怎么使用?
rand函数的使用方法如下
打开Excel表单文件。
在指定单元格中输入“=RAND()”。
在英文状态在输入空括号。
点击回车,并立即返回一个值。
向左或向下拖动填充表格即可。
随机函数rand公式是:"=a+rand()%(b-a+1)”。
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数。
但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a。
rand()函数使用延伸:
若要生成 a 与 b 之间的随机实数,应使用: RAND()*(b-a)+a
如果要使用函数 RAND 生成一随机数,并且使之不随单元格计算而改变,可以在编辑栏中输入“=RAND()”,保持编辑状态,然后按 F9,将公式永久性地改为随机数。
excel中的rand函数的使用教程详解
在excel中有时候会用到随机函数,其中rand函数是一个可以生成随机数的函数,成数范围是大于等于0小于1。下面我就教你们在excel中rand函数的使用 方法 ,希望对你有帮助!
excel中rand函数的使用方法 随机函数rand可以返回大于或等于0并且小于1的平均分布随机数。
下面以求100以内随机整数为例解释函数用法。
在B1单元格输入公式=INT(100*RAND())+1
excel中rand函数的使用方法图 1
回车以后得到一个随机数
excel中rand函数的使用方法图2 将该单元格下拉,就得到一组100以内的单元格。
excel中rand函数的使用方法图3 INT(100*RAND())+1解释:
其中100*RAND()表示0-100以内(不含100)任意随机数。
int函数是向下求整函数,加上1后可以随机得到大于等于1,小于等于100的随机整数。
猜你喜欢: 1. excel2010如何使用rand函数
2. excel 画正弦函数图表的教程
3. excel表自定义函数的教程
4. 如何从excel表中随机提取系列数据的教程
5. excel函数如何设置自动填充sum图文教程
6. 手把手教你用“Excel表格自动求积公式”