| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1305 人关注过本帖
标题:自学随机数,有几个地方看不懂,求指教。
只看楼主 加入收藏
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
结帖率:95.37%
收藏
已结贴  问题点数:20 回复次数:13 
自学随机数,有几个地方看不懂,求指教。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int main()
{
int i=0,j=0;
int p[5][5]={0};
srand(time(NULL));   //这一步怎么解释?
for(i=0;i<5;i++)
    for(j=0;j<5;j++)
    p[i][j]=rand()%100+1;//产生1-100的随机数存入数组p中    这一步怎么解释?
printf("二维数组p为:\n");
for(i=0;i<5;i++)
{
    for(j=0;j<5;j++)
        printf("%d\t",p[i][j]);
    printf("\n");
}
return 0;
}
搜索更多相关主题的帖子: include 
2017-03-27 22:24
yanzy
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:104
专家分:372
注 册:2017-2-7
收藏
得分:10 
srand生成种子,rand根据种子生成随机数
2017-03-27 22:36
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:10 
1、srand(seed)中的seed是一个变值,使得rand()每次产生的值都不一样。参数seed是rand()的种子,用来初始化rand()的起始值。
2、rand()返回一个[0, RAND_MAX]间的随机整数。
    如:产生一个0到N之间的随机数
    m = (int)((double)rand()/(RAND_MAX+1.0)*N));

[此贴子已经被作者于2017-3-27 23:07编辑过]

2017-03-27 23:04
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 3楼 吹水佬
没看懂
2017-03-27 23:09
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用花脸在2017-3-27 23:09:51的发言:

没看懂

动动手就懂
试试:
1、执行与不执行srand(time(NULL));看看结果有什么不同。
2、设 N=500000; 取 0--500000之间随机数。
    printf("%d\n", (int)((double)rand()/(RAND_MAX+1.0)*N));
    printf("%d\n", (int)((double)rand()/(RAND_MAX+1.0)*N));
    printf("%d\n", (int)((double)rand()/(RAND_MAX+1.0)*N));
2017-03-27 23:21
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
以下是引用吹水佬在2017-3-27 23:04:41的发言:


    m = (int)((double)rand()/(RAND_MAX+1.0)*N));

  再麻烦解读下 这行代码呗,
2017-03-27 23:22
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册
图片附件: 游客没有浏览图片的权限,请 登录注册
   这里面的(time(NULL))是什么意思》?
2017-03-27 23:30
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:0 
以下是引用花脸在2017-3-27 23:22:01的发言:


  再麻烦解读下 这行代码呗,

上面已讲到
rand()返回一个[0, RAND_MAX]间的随机整数。
取 0--N 随机数 m = N*rand()/RAND_MAX
则 m/N = rand()/RAND_MAX, 这样明吧,就是比例关系。
2017-03-27 23:33
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43186
注 册:2014-5-20
收藏
得分:0 
回复 7楼 花脸
重说一次
srand(seed)中的seed是一个变值,使得rand()每次产生的值都不一样。
要保证seed这个变值每次都不同(相同就不叫变值),用时钟time做参考是最好的吧。
当然你也可以srand(1)、srand(2)、srand(3)....
2017-03-27 23:42
花脸
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:9
帖 子:788
专家分:907
注 册:2017-1-4
收藏
得分:0 
回复 9楼 吹水佬
(int)((double)  这是什么意思?
2017-03-28 18:14
快速回复:自学随机数,有几个地方看不懂,求指教。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019219 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved