回 帖 发 新 帖 刷新版面

主题:关于RND函数的问题(请教)

本人是QB的初学者
刚刚学到RND函数,得知其的作用是随机产生一大于0小于1的数
但我只要一运行,结果的值却总是一个".7055475"  
不管运行多少次,结果只这一个,很纳闷

谁知道怎么回事请告诉我一下,谢谢了

回复列表 (共22个回复)

11 楼

应该这么用
RANDOMIZE TIMER
int rnd (x*10-x)

12 楼

randomize timer  是播撒随机种子
它会使ran这个函数每次都会得到一个大于0小于1的小数
( 但 有 时 候 会 重 复 !)

13 楼

[quote]randomize是系统函数:生成随机种子
系统的伪随机原则是给一个特定的程序点一个特定的随机种子,在此基础上生成一个伪随机数
所以所有相同位置的伪随机数都是一样的,而不同位置的伪随机数则是不同的
randomize是给全程序生成随机种子的,timer是系统值,是当前时间
如果你两天的同一时刻执行程序,得到的结果应该一样
拜托
timer是函数

14 楼


加上randomized timer就可以了

15 楼

不管关上多少次,再运行多少次,只要不加randomize,它的值就只会是那一个.
当然,加上for循环的话: for n=1 to 10
                      print rnd
这样的话,得出的10个数都不相同;但是每次运行的话,得出的10个数还是一样的


我是针对这个告诉你的
10个rnd在程序执行的过程中分别相当于在10个不同的位置执行了吧
这就是所谓“不同位置的伪随机数则是不同的”
 


请大家自觉采用c99标准中的int main
main函数的默认返回值是0
void main是国产教材的典型误区

16 楼

加一个RANDOMIZE TIMER就可以了!

17 楼

呃.....RANDOMIZE TIMER随机种子........加在程序最前面

18 楼

不一定

19 楼

randomize是系统函数:生成随机种子
系统的伪随机原则是给一个特定的程序点一个特定的随机种子,在此基础上生成一个伪随机数
所以所有相同位置的伪随机数都是一样的,而不同位置的伪随机数则是不同的
randomize是给全程序生成随机种子的,timer是系统值,是当前时间
如果你两天的同一时刻执行程序,得到的结果应该一样
拜托
timer是函数

20 楼

要用RANDOMIZE TIMER
否则只是假随机!( ⊙o⊙ )千真万确
O(∩_∩)O谢谢

我来回复

您尚未登录,请登录后再回复。点此登录或注册