|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 关于随机数的几点小问题
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
527
人关注过本帖
标题:
关于随机数的几点小问题
只看楼主
加入收藏
a271885843
等 级:
论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
结帖率:
84.38%
楼主
收藏
已结贴
√
问题点数:20 回复次数:7
关于随机数的几点小问题
rand() % 100;
如题,这里表示什么意思,里面%100到底是什么意思?如a=rand() % 100,a所得到的随机数到底是什么样的?
从X到Y,有Y-X+1个数,所以要产生从X到Y的数,只需要这样写:
k = rand() % (Y - X + 1) +X;
这个语句如何和上面 rand() % 100;产生关系?
怎么理解啊?
与之相关的srand((unsigned) time(&t));这个叫时间戳函数吧?怎么理解啊?
搜索更多相关主题的帖子:
如何
2011-12-29 21:38
举报帖子
使用道具
赠送鲜花
a271885843
等 级:
论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
第
2
楼
收藏
得分:0
知道的同学给我解释啊,速度啊,谢谢了啊,内急啊,在线等啊.......
认为事物非黑即白是缺智慧的表现……
2011-12-29 21:43
举报帖子
使用道具
赠送鲜花
wu615765239
等 级:
论坛游民
帖 子:3
专家分:27
注 册:2011-12-29
第
3
楼
收藏
得分:7
提取当前时间的数值除以两个数的差,再加上两个数中最小的那个,就能得到两个数之间的一个数,因为时间再变,所以每次取出的数不相同,楼主自己思考下,你懂的
2011-12-29 22:19
举报帖子
使用道具
赠送鲜花
liao06550107
等 级:
黑侠
威 望:
2
帖 子:111
专家分:696
注 册:2011-10-2
第
4
楼
收藏
得分:7
在标准的C库中函数rand()可以生成0 - RAND_MAX之间的一个随机数,因为rand()函数是按指定的顺序来产生整数,因此每次执行rand()都得到相同值,所以说C语言的随机并不是真正意义上的随机,有时候也叫伪随机数。
为了使程序在每次执行时都能生成一个新序列的随机值,我们通常通过为随机数生成器提供一粒新的随机种子。函数 srand()(来自stdlib.h)可以为随机数生成器播散种子。只要种子不同rand()函数就会产生不同的随机数序列。srand()称为随机数生成器的初始化器。
k = rand() % (Y - X + 1) +X;与rand() % 100;没有关系;第一个k取值范围为[X,Y],而rand()%100表示取值范围[0,100)
srand((unsigned) time(&t))为根据系统时间改变随机种子,从而使同一个rand()不同时刻产生随机数变化。
听不同的音乐,看不同的书,游历不同的城市,邂逅不同的人,走的多了,站的高了,自然就看的远了。
2011-12-29 23:19
举报帖子
使用道具
赠送鲜花
kuangfengjiw
等 级:
论坛游民
帖 子:20
专家分:77
注 册:2011-12-16
第
5
楼
收藏
得分:7
rand()是取0—最大数之间的一个随机数,%100是求这个随机数除以100后的余数,范围为[0,100);
rand() % (Y - X + 1)表示[0,Y-X+1)再加上x即是[x,y];
srand()它需要提供一个种子,这个种子会对应一个随机数,而time(&t)是取当前系统时间,所以srand(time(&t))的种子是一直变化的。。所以随机数出现相同的概率很小。
2011-12-31 15:52
举报帖子
使用道具
赠送鲜花
a271885843
等 级:
论坛游民
帖 子:291
专家分:58
注 册:2011-11-24
第
6
楼
收藏
得分:0
嗯,谢了楼上几位。
奉上一个简单的产生随机数的程序
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
int i;
time_t t;
srand((unsigned) time(&t));
printf("Ten random numbers from 0 to 99\\n\\n");
for(i=0; i<10; i++)
printf("%d\\n", rand() % 100);
return 0;
}
认为事物非黑即白是缺智慧的表现……
2012-01-02 19:33
举报帖子
使用道具
赠送鲜花
chenyuncai
等 级:
论坛游民
帖 子:27
专家分:50
注 册:2011-11-9
第
7
楼
收藏
得分:0
呵呵,又了解一个小技术了,
2012-01-02 19:46
举报帖子
使用道具
赠送鲜花
魏新建
等 级:
论坛游民
帖 子:55
专家分:86
注 册:2012-2-17
第
8
楼
收藏
得分:0
谢谢了,刚刚看到这个函数不太懂,看了之后懂很多了。
2012-03-09 14:43
举报帖子
使用道具
赠送鲜花
8
1/1页
1
快速回复:
关于随机数的几点小问题
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.045370 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved