| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1376 人关注过本帖
标题:[求助]谁来说说随机函数的应用
只看楼主 加入收藏
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
结帖率:66.67%
收藏
 问题点数:0 回复次数:7 
[求助]谁来说说随机函数的应用

小弟在网上苦找不到简单的讲解。

搜索更多相关主题的帖子: 随机函数 应用 
2004-09-11 20:24
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
我知道rand()直接用就可以,但是有的取系统时间作随机,请说说怎么用时间来算。谢谢
2004-09-11 20:26
kuangjingbo
Rank: 1
等 级:新手上路
帖 子:312
专家分:0
注 册:2004-4-24
收藏
得分:0 

rand(),是产生伪随即数的函数, 但是有个缺点 :假如你分别打开同一个程序两次 , 你会发现他们产生的随即数序列是完全一样的。这是因为它们的种子是一样的。

这里牵扯到一个种子问题,如果两个程序的种子一样,那么他们产生的随即数序列是一样的。所以,一般在使用rand之前要改变种子,它的函数是:void srand( unsigned int seed );

为了使每次使用程序的种子都不一样,那么一般是使用当前的时间来作为种子。time( NULL )可以得到当前时间。

下面是个例子:

Example

/* RAND.C: This program seeds the random-number generator 
 with the time, then displays 10 random integers. */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{   int i;   
    /* Seed the random-number generator with current time so that
    the numbers will be different every time we run.  */   
    srand( (unsigned)time( NULL ) ); 
    /* Display 10 numbers. */ 
    for( i = 0;   i < 10;i++ ) 
    printf( "  %6d\n", rand() );
}

[此贴子已经被作者于2004-09-12 23:28:01编辑过]


永不放弃!
2004-09-12 23:24
空前
Rank: 1
等 级:新手上路
帖 子:1146
专家分:0
注 册:2004-5-11
收藏
得分:0 

每次使用rand() 之前先使用一个

randomize();

这样可以改变其值;


2004-09-13 18:25
live41
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:67
帖 子:12442
专家分:0
注 册:2004-7-22
收藏
得分:0 
谢谢,很明白的解释!
2004-09-14 21:20
中国人
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2004-8-26
收藏
得分:0 

3楼的大哥,可以用别的做种子吗?

4楼大哥,vc++ randomize()随即函数启动器不好用。


让世界知道我们都是中国人!
2004-09-15 08:29
ffll518
Rank: 1
等 级:新手上路
帖 子:24
专家分:0
注 册:2004-9-8
收藏
得分:0 
vc++里用 srand(int=0);做种子啦。

2004-09-15 08:58
wafag
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-9-6
收藏
得分:0 

rand,random是随机数发生器,srand,randomize是随机数发生器初始化函数。

srand函数参数seed为人为设定的随机函数种子。randomize没有参数,与srand不同的是它自动采用系统时钟为随机数种子,两函数满足randomize=srand(time)。


2004-09-16 15:25
快速回复:[求助]谁来说说随机函数的应用
数据加载中...
 
   



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

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