c语言怎么生成随机数?
答案:5 悬赏:50
解决时间 2021-01-11 17:34
- 提问者网友:星軌
- 2021-01-11 12:47
c语言怎么生成随机数?
最佳答案
- 二级知识专家网友:七十二街
- 2021-01-11 13:25
函数rand(),每次运行都会产生随机数。
原理:利用物理不稳电路,电路会根据当前周边电磁场信号,随机产生无线电接收信号,然后转换成数字,因为电场的不稳定性,所以每次产生的数字都会不同,绝对不可能连续生成一样的数字;
简单使用:A、慨然软件的工具或开发环境中使用这个函数;B、Excel表格中,在各自中使用这个函数,每次都能产生不同的数字;
常规使用场合:A、随机数抽奖程序;B、大数据测试;C、游戏中的骰子产生随机数。
原理:利用物理不稳电路,电路会根据当前周边电磁场信号,随机产生无线电接收信号,然后转换成数字,因为电场的不稳定性,所以每次产生的数字都会不同,绝对不可能连续生成一样的数字;
简单使用:A、慨然软件的工具或开发环境中使用这个函数;B、Excel表格中,在各自中使用这个函数,每次都能产生不同的数字;
常规使用场合:A、随机数抽奖程序;B、大数据测试;C、游戏中的骰子产生随机数。
全部回答
- 1楼网友:等灯
- 2021-01-11 16:10
#include
#include
#include
void main()
{
srand((unsigned)time( NULL ) ); //时间种子有这个可以让每次运行程序产生的随机数不同
for(int i=1;i<=100;i++)
{
printf("%d ",rand()%1000+1000); //rand()函数产生的随机数的范围是-65535~65535
if(i%8==0)
printf(" ");
}
}
如果对答案满意的话就麻烦把我的答案选为满意答案追问怎么数加入到数组呢?在这个数组中怎么随机选取一个作为i?追答 #include
#include
#include
void main()
{
int a[100],t;
srand((unsigned)time( NULL ) );
for(int i=1;i<=100;i++)
{
a[i-1]=rand()%1000+1000;//这样就可以了
printf("%d ",a[i-1]);
if(i%6==0)
printf(" ");
}
printf(" ");
printf("将随机抽取一个数 ");
t=rand()%100;
printf("抽取的是第%d个数 ",t+1);
printf("%d ",a[t]);//不知道是不是这个意思
}
那个取一个作为i我不知道是什么意思!你能上传所有题目信息吗?
#include
#include
void main()
{
srand((unsigned)time( NULL ) ); //时间种子有这个可以让每次运行程序产生的随机数不同
for(int i=1;i<=100;i++)
{
printf("%d ",rand()%1000+1000); //rand()函数产生的随机数的范围是-65535~65535
if(i%8==0)
printf(" ");
}
}
如果对答案满意的话就麻烦把我的答案选为满意答案追问怎么数加入到数组呢?在这个数组中怎么随机选取一个作为i?追答 #include
#include
#include
void main()
{
int a[100],t;
srand((unsigned)time( NULL ) );
for(int i=1;i<=100;i++)
{
a[i-1]=rand()%1000+1000;//这样就可以了
printf("%d ",a[i-1]);
if(i%6==0)
printf(" ");
}
printf(" ");
printf("将随机抽取一个数 ");
t=rand()%100;
printf("抽取的是第%d个数 ",t+1);
printf("%d ",a[t]);//不知道是不是这个意思
}
那个取一个作为i我不知道是什么意思!你能上传所有题目信息吗?
- 2楼网友:野味小生
- 2021-01-11 15:58
srand函数 与rand函数配合使用,或者也可以用time函数,去看看srand和rand函数的用法
- 3楼网友:轻熟杀无赦
- 2021-01-11 15:36
你好!
完整的代码,红圈处就是从上面100个数字中抽取到的数字:
#include
#include
#include
#include
int main()
{
int i;
int a[100];
srand( time(NULL) ); //生成种子
for(i=0;i<100;i++)
{
a[i]=rand()%1000+1000; //生成一个小于1000的随机数
//然后加1000,变成 1000 - 2000之间的数
printf("%d ",a[i]); //打印
}
i=rand()%100; //随机抽取其中的一个数
printf(" 抽取到的是:%d ",a[i]);//打印
return 0;
}追问i=rand()%100;不是生成1个小于100的随机数吗?怎么成了抽取其中的一个数追答因为上面的代码,已经将1000-2000的数字放在了a【100】的数组内;
要取出其中一个数字的时候,只需要生成 0 - 99 就能得到想要的数字了!追问怎么是从a[100]中取的呢?没有可能重新生成新的吗追答
你的要求不是:在这个数组中怎么随机选取一个作为i?这样提的吗
你的意思是将这个取得的值,赋给 i ??#include
#include
#include
#include
int main()
{
int i;
int a[100];
srand( time(NULL) ); //生成种子
for(i=0;i<100;i++)
{
a[i]=rand()%1000+1000; //生成一个小于1000的随机数
//然后加1000,变成 1000 - 2000之间的数
printf("%d ",a[i]); //打印
}
i=rand()%100; //随机抽取其中的一个数
i= a[i]; // 这里把抽取的值赋给了 i
printf(" 抽取到的是:%d ", i );//打印 i
return 0;
}
- 4楼网友:山君与见山
- 2021-01-11 14:34
#include
#include
#include //用到了time函数
int main()
{ int i,number;
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (i=0; i<50; i++)
{
number = rand() % 101; //产生0-100的随机数
printf("%d ", number);
}
return 0;
}
#include
#include
int main()
{ int i,number;
srand((unsigned) time(NULL)); //用时间做种,每次产生随机数不一样
for (i=0; i<50; i++)
{
number = rand() % 101; //产生0-100的随机数
printf("%d ", number);
}
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息