当前位置:首页 » 编程语言 » c语言随机数
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言随机数

发布时间: 2022-01-20 21:38:32

A. c语言中取随机数的函数

1. 基本函数

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

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

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

#include <stdlib.h>

2. 使用方法

rand()函数返回0到RAND_MAX之间的伪随机数(pseudorandom)。RAND_MAX常量被定义在stdlib.h头文件中。其值等于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()函数前必须包含头文件time.h。

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) 其他情况,以此类推,这里不作详细说明。

B. c语言随机数

用srand()函数初始化,每次都可以产生不同的随机数。

C. C语言如何编程产生随机数

1、首先打开Visual stdio 2019,依次点击文件,新建,项目新建以一个空白的项目:

D. C语言产生随机数


/***********************
作者:dongyu
功能:生成随机数
***********************/
#include <stdio.h>
#include <conio.h>
main()
{
int i,n,sum=0,mark=1;
srand(time(NULL));//设置随机种子
while(mark==1)//如超出随机数总和的范围,则重新生成随机数
{
sum=0;//将总和归零
system("cls");//清屏
printf("符合条件的200个随机数为:");//打印一个回车
for(i=0;i<200;i++)//循环200次,生成200个随机数
{
if(i%10==0)
printf("\n");
n=rand()%101;//随机数在1-100之间
sum=sum+n;//将生成的随机数累加,存在sum变量中
printf("%d ",n);//输出每次循环生成的随机数
}

if(sum==10000)//判断是否等于确定的随机数总和
{
mark=0;//如果不等,变量mark为0
}
}
printf("\n%d",sum);//输出总和
system("pause");//使程序在DOS窗口下暂停,可注释掉
}

运行程序后,请耐心等待,因为200个100以内的随机数的和,不是很容易就等于确定的总和数(10000)的!!

E. c语言,如何产生随机数

1、第一步,先定义int一个数组和int一个指针变量。

F. C语言随机数

#include <stdlib.h>
#include <stdio.h>
#include <time.h> /*用到了time函数,所以要有这个头文件*/
#define row 7 //可修改
#define line 10 //可修改
#define MAX 1000 //可修改
main( void)
{
int n[line][row];
int i,j;
srand((unsigned) time(NULL)); /*播种子*/
for(i = 0; i<line; i++)
{
for(j=0;j<row;j++)
{
n[i][j]=rand()%MAX; /*产生1000以内的随机整数*/
printf("%d ",n[i][j]);
}
printf("\n");
}
printf("\n");
return 0;
}
line 表示你需要数组的行数
row 表示你需要数组的列数
MAX表示产生的随机数是0--MAX之间的数,以上都是可以根据需要修改的。

G. c语言中随机数怎样写

C语言
函数
名rand()
简介

能::伪
随机数
发生器
所属库:stdlib.h

法:
需要先调用srand
初始化
,一般用当前
日历时间
初始化随机数种子,这样每次执行
代码
都可以产生不同的随机数。
函数原型:int
rand(void);
相关函数:srand、time、GetTickCount
程序例
1:
#include
"stdio.h"
#include
"stdlib.h"
int
main(void)
{
int
i;
printf("Ten
random
numbers
from
0
to
99\n\n");
for(i=0;
i<10;
i++)
printf("%d\n",
rand()
%
100);
return
0;
}
例1程序在每次
运行时
都会生成相同的十个
伪随机数
,如要每次生成的随机数不同应结合srand函数和
time函数

///////////////////
int
i,a;
for(i=0;i<3;i++)
{
a=rand()%9;
printf("%d",a);
}