random()是取随机数的,但为什么不行啊

fdm_sea 2002-08-05 01:48:07
我在实习时用到过一次random()函数,是C里面的,不知道为什么只有第一次是得到随机数,后来在运行的时候都还是这个数,这就叫随机数??
请问这是为什么?
...全文
153 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
mayaaaaa 2002-08-12
  • 打赏
  • 举报
回复
简单的就是用randomize()
johnmack 2002-08-12
  • 打赏
  • 举报
回复
random有记忆效应;
在C里有一个函数可以解决
笑面佛_正版 2002-08-12
  • 打赏
  • 举报
回复
randomize()
random()

这样调用每次就可以得到不同的随机数,不过在高手面前,指得是当你用随机数来用于密码方面,随机数还是在规律的,且高手可以找得出来

这只能用于TC20,在VC60中只能用rand(),上两个函数都非法
dejoy 2002-08-12
  • 打赏
  • 举报
回复
要先初始化
lizhuohua 2002-08-12
  • 打赏
  • 举报
回复
就是每次都要先初始化吧
fdm_sea 2002-08-12
  • 打赏
  • 举报
回复
种子是什么呢?我是个新手,能不能说通俗点?
zersan 2002-08-05
  • 打赏
  • 举报
回复
同意楼上的
angiekwok 2002-08-05
  • 打赏
  • 举报
回复
你在程序的顶部,定义一个
#include <time.h>
然后再在main()里面
random()之前加上这个语句
srand ( time ( 0 ) );
就可以真正的随机了
moonskywalker 2002-08-05
  • 打赏
  • 举报
回复
简单地说,所谓随机数,只是电脑把你给它的种子数加以某种运算得出的结果,如果种子数相同,那么结果是一样的,所以每次一开始,种子都默认是0,后来几次系统会默认以上次的结果数作为这次的种子。你可以在取随机数前,用命令srand(time(NULL))使得系统时间为种子,那么每次都不一样了,可看作随机
dgj 2002-08-05
  • 打赏
  • 举报
回复
是这样的啊,不过给定一个种子数以后,
你随后的random()调用得到的将是一个确定的序列,
所以说这样得到的其实并不能叫随机数
关门兔 2002-08-05
  • 打赏
  • 举报
回复
在一个程序中,第一次先调用srand,参数最好为系统时间
以后可以多次调用rand了
TyraelTiger 2002-08-05
  • 打赏
  • 举报
回复
你没有给出随机数种子阿!faint
step_by_step 2002-08-05
  • 打赏
  • 举报
回复
因为你的种子没有变还是0,一般在调用random()之前先要调用srand()种一个种子,如果没有显示调用的话,则系统认为你的种子是0。所以编译之后每一次运行产生的随机数都是一样的。一般的用系统的当前时间来作为你的种子。
noswordwj 2002-08-05
  • 打赏
  • 举报
回复
前面还要个随机数初始化的函数好象是srand(int seed),即 种子函数

69,364

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧