符合中小企业对网站设计、功能常规化式的企业展示型网站建设
本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...
商城网站建设因基本功能的需求不同费用上面也有很大的差别...
手机微信网站开发、微信官网、微信商城网站...
c语言中产生随机数的相关函数主要包括srand和rand函数,两者配合生成随机数据,测试代码如下,
创新互联是专业的延平网站建设公司,延平接单;提供网站设计制作、成都网站制作,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行延平网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
#includestdio.h
#include stdlib.h
#include time.h
void main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));
for(i=0;i5;i++)
for(j=0;j5;j++)
p[i][j]=rand()%100+1;//产生1-100的随机数存入数组p中
printf("二维数组p为:\n");
for(i=0;i5;i++)
{
for(j=0;j5;j++)
printf("%d\t",p[i][j]);
printf("\n");
}
}
一般srand和rand配合使用产生伪随机数序列。rand函数在产生随机数前,需要系统提供的生成伪随机数序列的种子,rand根据这个种子的值产生一系列随机数。如果系统提供的种子没有变化,每次调用rand函数生成的伪随机数序列都是一样的。srand(unsigned seed)通过参数seed改变系统提供的种子值,从而可以使得每次调用rand函数生成的伪随机数序列不同,从而实现真正意义上的“随机”。通常可以利用系统时间来改变系统的种子值,即srand(time(NULL)),可以为rand函数提供不同的种子值,进而产生不同的随机数序列。
C语言随机函数主要用于实现一组随机数的生成。
代码示例如下:
#includestdio.h
#includestdlib.h
int main ()
{
int a;
a=rand()%4;
printf("%d\n",a);
return 0;
}
C预先生成一组随机数,每次调用随机函数时从指针所指向的位置开始取值,因此使用rand()重复运行程序产生的随机数都是相同的,可以通过srand()函数来改变指针位置。
扩展资料:
C语言随机函数指针位置
void srand( unsigned int seed )
改变随机数表的指针位置(用seed变量控制)。一般配合time(NULL)使用,因为时间每时每刻都在改变,产生的seed值都不同。
基于毫秒级随机数产生方法:
#includewindows.h
种子设为:srand(unsigned int seed);
srand(GetTickCount());
参考资料:百度百科-C语言随机函数
把时间作为随机种子,基本可以认为是平均而且无规律的随机。
srand((unsigned)
time(NULL));
rand()产生0-RAND_MAX之间的整数,RAND_MAX是个常数,忘了,好像是7FFF,可以printf试一下。
random(N)产生0-N之间的整数
以上需要strlib.h
time.h
stdio.h
用boost的random库方便生成,以下是2个测试,分别生成50个数:
// μ = 30, δ^2 = 4
30.84 30.00 26.61 27.49 31.27
29.74 27.99 29.81 29.73 33.29
32.17 31.37 26.83 28.20 27.99
28.69 34.66 25.44 29.22 24.84
29.39 32.02 32.35 28.28 34.16
27.04 32.02 33.40 31.39 29.08
31.91 29.19 29.14 32.25 27.20
32.16 29.06 27.67 29.26 29.51
28.36 28.65 26.87 27.74 26.56
30.16 31.18 30.57 30.57 33.43
// μ = 30, δ^2 = 100
84.66 61.85 24.17 68.63 2.15
1.30 40.92 72.74 74.83 4.25
39.86 27.06 60.94 50.58 79.35
51.83 86.03 74.75 92.33 70.59
93.43 55.51 57.22 70.48 70.52
1.45 22.55 40.85 33.23 65.39
35.54 89.69 45.87 88.35 40.73
67.31 17.64 23.98 98.43 35.93
97.88 48.95 59.54 13.14 45.79
5.55 8.77 70.31 14.83 82.54
#include iostream
#include boost/random.hpp
using namespace std;
typedef boost::minstd_rand GenType;
typedef boost::normal_distribution NormalDis;
typedef boost::variate_generatorGenType, NormalDis RNG;
void Show(RNG rng)
{
cout.setf(ios_base::fixed);
cout.precision(2);
for(int i = 0; i 50;)
{
double temp = rng();
if(temp = 1 temp = 100)
{
cout temp ' ';
if(++i % 5 == 0)
cout '\n';
}
else
continue;
}
cout endl;
}
int main()
{
GenType gt;
NormalDis dis(30, 2); // μ = 30, δ^2 = 4
RNG rng(gt, dis);
Show(rng);
rng.distribution() = NormalDis(30, 100); // μ = 30, δ^2 = 10000
Show(rng);
}
你在函数里面生成的随机数种子,而计算机运行速度又很快,时间几乎没差别,种子完全一样,生成的随机数当然一样。
改成下面样子就OK了:
void main()
{
int i1,i2,i3,i;
srand (time(NULL));//加到这个位置
i2=suiji();
printf("%d",i2);
i1=suiji();
printf("%d",i1);
}
int suiji()
{
int a;
int t=1,d=18;
//srand (time(NULL));
a=rand()%(d-t)+t;
return a;
}
rnd是vb中的随机函数,应该用rand();
函数说明
rand()会返回一随机数值,范围在0至RAND_MAX
间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。
srand((int)time(0));
是产生的随机数每次不一样。
#includetime.h
#includestdlib.h
main()
{
int
i,j;
srand((int)time(0));
for(i=0;i10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("
%d
",j);
}
}
执行
5
8
8
8
10
2
10
6
9
9
2
9
7
4
10
3
2
10
8
7