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

c语言生成随机数

发布时间: 2022-01-13 03:16:02

c语言中产生随机数

随机数主要有两个函数
一个种子产生函数
void
srand(int);
一个随机数产生函数
int
rand();
当我们要产生随机数的时候,首先我们生成一个随机数种子(注意相同的种子产生的随机数序列是一样的)
然后使用rand()函数得到随机数
祝你好运

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

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

㈢ C语言中怎样生成随机数

C语言生成
随机数

函数
为rand。
1
声明:
int
rand(void);
2
头文件:
stdlib.h
3
功能:
获取一个非负随机
数值

4
注意事项:
a)
rand是
伪随机数
,由一个种子计算得来。
如果种子相同,每次启动
程序
,获取到的
随机序列
是固定的。
可以通过srand设置当前时间作为种子,使随机效果更好。
srand(time(NULL));
b)
要获取[m,n]范围的随机数,可以使用代码
rand()%(n-m+1)+m

㈣ c语言,如何产生随机数

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

㈤ 产生随机数...(用c语言编写)

用C语言产生随机数,必须使用一个产生随机数的函数rand
这个函数就可以随机产生一个随机数的

㈥ 怎么用C语言生成随机数

假设要生成的随机数是大于等于20且小于等于100的整数

#include<stdio.h>
#include<time.h>
#include<stdlib.h>
voidmain(){inta,b,x;
a=20;b=100;
srand((unsignedint)time(NULL));//用当前时间生成一个随机数种子
x=rand()%(b-a+1)+a;
printf("得到一个随机数:%d ",x);
}

㈦ C语言:产生随机数 求高手指导!!!

我这里给出M,N是double
的通用程序。(m
<
n
).
随机数也是double,你若要整数自己取整。
指数分布,假定指数分布函数曲线是:
f(x)=LAM
*
exp(-LAM*x);
LAM

指数分布函数
参数。你要自己给定,我这里给了1.2。
#include
<stdio.h>
#include
<stdlib.h>
#include
<time.h>
//
别忘了

time.h
#include
<math.h>
//
别忘了

math.h
//
均匀分布的随机数
double
rd_MN1(double
m,double
n)
{
double
r;
if
(m>n)
{r=n;n=m;m=r;};
r
=
(
(double)rand()
/
((double)(RAND_MAX)+(double)(1))
);
r
=
m
+
r
*
(n-m);
return
r;
}
void
main()
{
long
int
i,k;
double
m,n;
double
x,
r;
double
y;
double
LAM=1.2;
//f(x)=LAM*exp(-LAM*x);
m=2.0;
n=5.0;
srand((unsigned)time(NULL));
//
随机种子
for
(i=0;i<50;i++)
printf("%lf
",
rd_MN1(m,n));
printf("\n==========\n");
srand((unsigned)time(NULL));
k=0;
loop:
r
=
(
(double)rand()
/
((double)(RAND_MAX)+(double)(1))
);
y
=
-log(r)
/
LAM;
if
(y
>=
m
&&
y
<=
n)
{printf("%lf
",y);
k++;};
if
(k
<
50)
goto
loop;
//
产生50个指数分布随机数
}

㈧ c语言 关于产生随机数

/**
*编译器:vs2010
*时间:2017年11月7日
*@fencaide
*/

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<time.h>

intmain(void)
{
intanswer=0;

for(inti=0;i<10;i++){
srand((unsigned)time(NULL));
answer=rand()%9000;
printf("%d ",answer);
Sleep(2000);
}

getchar();
getchar();
return0;
}

人家的随机是相对于这个种子的情况下,不同的种子产生的结果当然不具备随机性,而且伪随机不是真随机。也就是对于一个种子多次rand是具备“随机性”的,而因为是伪随机,多个种子多次随机自然不是随机的,下面这段话我 别人的哈

  • rand函数产生的并不是真意正义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种子,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数

㈨ 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)的!!

㈩ 如何用C语言产生随机数,随机数的加和是一确定的数

思路:
1
先获取到加和值;
2
输入加和值范围内的一个随机数;
3
用加和值减去获取到的随机数,这样就得到了另外一个数;
4
循环执行,直到获取到符合要求数量的数值为止。
以获取10组数值为例,代码如下:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int s;
int i,n;
srand(time(NULL));//设置随机数种子。
scanf("%d",&s);//输入加和值。
for(i = 0; i < 10; i ++)//获取10组要求的数值。
{
n = rand()%s;//获取一个0~s-1的随机数。
printf("%d+%d=%d\n", n, s-n, s);//输出结果。
}

return 0;
}