| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1330 人关注过本帖
标题:关于random的问题。
只看楼主 加入收藏
gisiyang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-9-18
收藏
 问题点数:0 回复次数:12 
关于random的问题。
我在用random 函数生成一个随机数。假如函数是:random(10) 运行后产生一个随机数。但如果不改参数,下次运行时随机数还是和上次的 一样。我想每次运行都产生不同的随机数。该怎么办?
搜索更多相关主题的帖子: random 随机数 函数 参数 运行 
2005-09-18 20:19
ChenMo
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:3
帖 子:481
专家分:10
注 册:2004-4-8
收藏
得分:0 
设置一个随机数种子便可。 设置随机数种子的函数可使用 randomize(), 该函数的原形是 void randomize(void); 所在头文件: stdlib.h 此函数无须参数,也无返回值, 实际上,随机数种子函数实现时会调用 time()函数, 且声明了一个全局变量 Seed,每次调用随机数产生函数后 Seed 都将被更改, 以达到产生某范围内周期性的随机数的目的, Seed 便是种子,调用 randomize 实际上就是给 Seed 初始化一个值, 可以想象它的实现就是 Seed = time(); 随机数产生器可使用线性同余数方法产生, 这是最简单的方法, 且计算机无法产生真正的随机数,因为它们都是依赖算法产生的。 所以称产生的随机数为伪随机数,但已足够应用了。

[此贴子已经被作者于2005-9-18 21:53:35编辑过]


欢迎加入 MVC 技术讨论群(新群:90093426)
2005-09-18 21:46
wenyong
Rank: 1
等 级:新手上路
帖 子:251
专家分:0
注 册:2005-8-9
收藏
得分:0 
讲的不错

2005-09-19 08:54
gisiyang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-9-18
收藏
得分:0 
以下是引用ChenMo在2005-9-18 21:46:40的发言: 设置一个随机数种子便可。 设置随机数种子的函数可使用 randomize(), 该函数的原形是 void randomize(void);所在头文件: stdlib.h此函数无须参数,也无返回值, 实际上,随机数种子函数实现时会调用 time()函数, 且声明了一个全局变量 Seed,每次调用随机数产生函数后 Seed 都将被更改, 以达到产生某范围内周期性的随机数的目的, Seed 便是种子,调用 randomize 实际上就是给 Seed 初始化一个值, 可以想象它的实现就是 Seed = time(); 随机数产生器可使用线性同余数方法产生, 这是最简单的方法, 且计算机无法产生真正的随机数,因为它们都是依赖算法产生的。 所以称产生的随机数为伪随机数,但已足够应用了。
谢谢,我才初学。你讲的很细,很全,非常的负责任。 只是我不知道具体怎么引用,我查函数库看到过这个函数,但引用时总是出错。能不能举个简单的例子,引用一下。谢谢。

[此贴子已经被作者于2005-9-19 8:56:05编辑过]


『StarCraft』
2005-09-19 08:55
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 
#include <time.h>

srand(time(NULL));
然后rand()就可以了

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-19 10:08
gisiyang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-9-18
收藏
得分:0 
谢谢~~!!!!
我看的那本C语言程序设计上很少讲到这类函数的使用。从哪里学到这些东西啊。

『StarCraft』
2005-09-19 10:15
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 
一般的教材不可能把所有的库函数都讲的【库函数太多-_-!】有一本书教什么C/C++库函数大全,讲的函数很多,可以看看,老外写的,网上有电子中文版的。不要问我下载地址,因为我也忘了哪里能下了。不必可意的记,只要知道有那么个能实现那种功能的函数就行了,等到实际用的时候再详查,用的多了,自然就记住一些了。

程序和身体一样,健壮,再健壮! 我爱C++
2005-09-19 10:19
gisiyang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-9-18
收藏
得分:0 
还有上面chenmo兄说的randomize函数应该怎么使用?这几个函数我都试着用过,都不会用。哪有介绍的啊?

『StarCraft』
2005-09-19 10:19
gisiyang
Rank: 1
等 级:新手上路
帖 子:50
专家分:0
注 册:2005-9-18
收藏
得分:0 
以下是引用jackrain在2005-9-19 10:19:43的发言: 一般的教材不可能把所有的库函数都讲的【库函数太多-_-!】有一本书教什么C/C++库函数大全,讲的函数很多,可以看看,老外写的,网上有电子中文版的。不要问我下载地址,因为我也忘了哪里能下了。不必可意的记,只要知道有那么个能实现那种功能的函数就行了,等到实际用的时候再详查,用的多了,自然就记住一些了。
谢谢!!!!

『StarCraft』
2005-09-19 10:20
jackrain
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2005-9-4
收藏
得分:0 

给你个例子。win-tc下编译通过。 #include <stdlib.h> #include <stdio.h>

void main() { int i, j, num;

randomize(); for( i=0; i<10; i++ ) { num = random(20) + 1; for( j=0; j<num; j++ ) printf( "*" );

printf("\n"); } system("pause"); }

但是C-Free不支持


程序和身体一样,健壮,再健壮! 我爱C++
2005-09-19 10:27
快速回复:关于random的问题。
数据加载中...
 
   



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

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