如何用C++写一个随机抽取1到5之间的代码(最好有附带解释的)
5个回答
展开全部
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int i=0;
srand(time(NULL));
while(i<5)
{ i=1+(int)(5*rand())/(RAND_MAX+1);
cout<<i<<endl;
}
}
需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每次执行代码都可以产生不同的随机数。
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是
初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,
那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数
rand()产生的数字范围是很大。而RAND_MAX是产生的随机数中最大的值。这样+(int)(5*rand())/(RAND_MAX+1)的范围就是0~4,再加上1便是1~5.
我特地使用一个while(i<5)就是想让你看一下随机出来的数字效果。如果还有什么不明白的我再帮你解答。
#include<stdlib.h>
#include<time.h>
void main()
{
int i=0;
srand(time(NULL));
while(i<5)
{ i=1+(int)(5*rand())/(RAND_MAX+1);
cout<<i<<endl;
}
}
需要先调用srand初始化,一般用当前日历时间初始化随机数种子,这样每次执行代码都可以产生不同的随机数。
rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是
初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,
那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数
rand()产生的数字范围是很大。而RAND_MAX是产生的随机数中最大的值。这样+(int)(5*rand())/(RAND_MAX+1)的范围就是0~4,再加上1便是1~5.
我特地使用一个while(i<5)就是想让你看一下随机出来的数字效果。如果还有什么不明白的我再帮你解答。
展开全部
#include"stdio.h"
#include"time.h"
#include"stdlib.h"
void main()
{
int i;
int a[10];
srand((unsigned)time(NULL));//用时间产生随机数种子
for(i=0;i<10;i++)
{
a[i]=rand()%5+1;//产生1-5的随机数
printf("a[%d]=%d\t\n",i,a[i]);
}
}
#include"time.h"
#include"stdlib.h"
void main()
{
int i;
int a[10];
srand((unsigned)time(NULL));//用时间产生随机数种子
for(i=0;i<10;i++)
{
a[i]=rand()%5+1;//产生1-5的随机数
printf("a[%d]=%d\t\n",i,a[i]);
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream.h>
#include <stdlib.h>
int random()
{
int m;
m=rand()%5+1;//任意数对5取余再加1,即从1到5
return m;
}
void main()
{
int a;
a=random();
cout<<a;
}
#include <stdlib.h>
int random()
{
int m;
m=rand()%5+1;//任意数对5取余再加1,即从1到5
return m;
}
void main()
{
int a;
a=random();
cout<<a;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<stdlib.h>
main()
{int a;
randomize();
a=random(5);
}
用这个,不解释!
main()
{int a;
randomize();
a=random(5);
}
用这个,不解释!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
楼上正解。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询