随机函数rand使用方法c语言,c语言随机函数怎么用,怎么定义?
随机函数rand使用方法c语言,c语言随机函数怎么用,怎么定义?详细介绍
本文目录一览: 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怎么用c语言
一、首先包含必要的头文件
#include
这个包含用于输入输出的函数。
#include
这个包含初始化随机数种子、产生随机数的函数。
#include
这个包含与时间有关的函数,初始化随机数种子时可以用到。
二、使用如下公式产生在区间[min,max]之间的随机数
int r=rand()%(max-min+1)+min;
三、一个例子,产生10个[1,100]的随机整数
#include
#include
#include
int main()
{
const int min=1,max=100;
int i,r;
//用当前时间初始化随机数种子
srand(time(NULL));
printf("随机产生的10个1-100的整数是:");
for(i=0;i<10;i++)
{
r=rand()%(max-min+1)+min;
printf("%d,",r);
}
return 0;
}
四、运行结果的截图
截图1
截图2
c语言之rand函数的使用
c语言中的rand随机数函数,是按指定顺序来产生的,在生成随机数之前,在stdlib.h头文件中,会初始化函数srand,根据随机种子seed,来获取随机数,如果seed不变,每次运行得到的随机数会是一样的,因此,rand函数也被大家叫做伪随机数。下面就来介绍下rand函数的使用
01 打开代码编译器,输入如下所示的代码片段
02 运行该代码片段,得到10个随机数,但是我们发现,不论运行几次,生成的随机数都是这10个,也就是说,在种子seed不变的情况下,生成的随机数是伪随机数
03 我们引入头文件time.h,取时间戳作为seed的取值来源,改代码片段如下,将srand(1)改成srand(time(NULL))
04 运行代码,得到10个随机数如下,定义非常量的srand参数,可以避免伪随机数的产生
C语言中rand的用法
rand
语法:
#include
int rand( void );
功能: 函数返回一个在零到RAND_MAX 之间的伪随机整数。例如: srand( time(NULL) ); for( i = 0; i < 10; i++ ) printf( "Random number #%d: %d\n", i, rand() );
在vs中RAND_MAX的默认值是0x7fff
具体可以
#include
#include
void main()
{
cout<
<rand_max<<endl;
}
来查看大小。
</rand_max<
C当中的取随机数函数rand()的具体用法是什么?
要让rand()产生[a,b]闭区间内的随机整数只要对它取余就行了:
rand_num=rand()%(b-a+1)+a
c语言之rand函数的使用在编程时我们有时总希望自己产生一个随机数字,以供使用,那么下面介绍rand函数的使用。
方法/步骤 写入头文件
#include
#include
#include
变量的定义
void main( void ) { int i,k;
srand( (unsigned)time( NULL ) ); /*选取种子文件*/
for( i = 0; i <20;i++ ) /*循环控制20个随机数的生成*/ { k=rand()%100; /*储存随机数*/ printf( " k=%d\n", k ); /*输出随机数*/ } }
END注意事项 此为随机函数的一种产生方法
如果只需一个,那么可以省略循环控制
c语言随机函数怎么用,怎么定义?
srand是初始化种子,他让每次的得到的随机数字都不一样哦!
举例说明吧!
int
i_array[10];
srand(
time(null)
);
//
初始化种子
for(int
i
=
0;
i
<
10;
i++)
{
i_array[i]
=
rand()
%
100;
//rand函数得到随机数字
}
头文件#include
C函数名
rand
功
能:
随机数发生器
用
法:
需要先调用srand初始化
void
rand(void);
程序例:
#include
#include
#include
void
main(
void
)
{
int
i,k;
srand(
(unsigned)time(
NULL
)
);
for(
i
=
0;
i
<
10;i++
)
{
k=rand()%100;
printf(
"
k=%d\n",
k
);
}
}
随机函数就是产生数的函数,c语言里有rand(),srand()等函数。
用法
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) ); //用系统时间当种子,对随机函数进行初始化
for( i = 0; i < 10;i++ )
{
k=rand()%100; //产生各个随机数
printf( " k=%d/n", k );
}
}
详述
rand() srand() 头文件为#include
标准C库中函数rand()可以生成0~RAND_MAX之间的一个随机数,其中RAND_MAX 是stdlib.h 中定义的一个整数,它与系统有关。
rand()函数没有输入参数,直接通过表达式rand()来引用,rand()%n是产生的随机数对n取余,起到了取0到n-1之间随机数的作用;
例如可以用下面的语句来打印两个随机数: printf("Random numbers are: %i %i/n",rand(),rand());
因为rand()函数是按指定的顺序来产生整数,而未指定运行的种子,所以rand()每次使用的都是同一个种子来产生随机数序列,因此每次执行上面的语句都打印相同的两个值,所以说C语言的随机并不是正真意义上的随机。
为了时程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
srand( (unsigned)time( NULL ) ); 用系统时间当种子,对随机函数进行初始化,每次的系统时间不同,所以种子也就不同,产生的随机数序列也就不同。
c语言随机函数怎么用,怎么定义?
随机数函数:int rand();
使用:
int value = rand();
value 将被随机的赋一个值,但是这样编译以后,每次的运行结果实际上是一样的,也就是同一个随机数。所以提供了随机数种子这个函数: srand(int)
使用:
srand(n);
int value = rand();
第二个问题:
输入输出大多定义在 stdio.h 里面,先写一个 hello world 吧。
头文件#include
C函数名 rand
功 能: 随机数发生器
用 法:
需要先调用srand初始化
void rand(void);
程序例:
#include
#include
#include
void main( void )
{
int i,k;
srand( (unsigned)time( NULL ) );
for( i = 0; i < 10;i++ )
{
k=rand()%100;
printf( " k=%d\n", k );
}
}
#include
#include
int main(void)
{
int i;
printf("Ten random numbers from 0 to 99\n");
for(i=0; i<10; i++)
printf("%d\n", rand() % 100);
return 0;
}
srand初始化随机数种子
rand()随机数
有关C语言中random函数的用法
srand(int)用来设种子,然后每次rand()返回一个随机值种子最好是每次都不同的,否则你每次得到的都是同样的一系列伪随机数,通常让种子和当前时间相关,比如srand((unsigned)time(0));
这段程序实现是产生十个随机数,产生1到100之间的随机数可以通过mod100+1来实现,代码如下:
#include
#include
main()
{
int j;
srand(100);
j=rand()%100+1;
}
C#里面好像random(1,100);便可以产生1到100的随机数。不知道C语言里行不行。
这段程序实现是产生十个随机数,srand函数是输入系统随机种子,程序一般都是采用时间作为随机种子。至于产生1到100之间的数可以对随机产生值进行100求模,这样就可以保证数在1~100之间了!
C语言中获得随机数的方法是什么?
可以使用库函数rand()。\x0d\x0arand声明于stdlib.h,其原型为\x0d\x0a\x0d\x0aintrand(void);\x0d\x0a功能为返回一个随机整型值。在C语言中,该值是一个正数值。\x0d\x0a\x0d\x0a在需要限定获取到的随机数范围时,如范围要求为[m,n]m
<n且m,n均为整数,可以用\x0d\x0arand()%(n-m+1)+m\x0d\x0a的形式进行获取。原理为:\x0d\x0a%为取余计算,当%k时,结果是[0,k-1]之间的数值;\x0d\x0a于是rand()%(n-m+1)∈[0,n-m];\x0d\x0a所以rand()%(n-m+1)+m∈[0+m,n-m+m]=[m,n]。
</n且m,n均为整数,可以用\x0d\x0arand()%(n-m+1)+m\x0d\x0a的形式进行获取。原理为:\x0d\x0a%为取余计算,当%k时,结果是[0,k-1]之间的数值;\x0d\x0a于是rand()%(n-m+1)∈[0,n-m];\x0d\x0a所以rand()%(n-m+1)+m∈[0+m,n-m+m]=[m,n]。