主题:关于RND函数的问题(请教)
wck1123
[专家分:0] 发布于 2006-12-21 17:51:00
本人是QB的初学者
刚刚学到RND函数,得知其的作用是随机产生一大于0小于1的数
但我只要一运行,结果的值却总是一个".7055475"
不管运行多少次,结果只这一个,很纳闷
谁知道怎么回事请告诉我一下,谢谢了
回复列表 (共22个回复)
11 楼
FFKK [专家分:1610] 发布于 2009-07-10 19:54:00
应该这么用
RANDOMIZE TIMER
int rnd (x*10-x)
12 楼
天天和和 [专家分:1420] 发布于 2009-07-11 16:59:00
randomize timer 是播撒随机种子
它会使ran这个函数每次都会得到一个大于0小于1的小数
( 但 有 时 候 会 重 复 !)
13 楼
我爱qbasic [专家分:160] 发布于 2009-07-12 17:24:00
[quote]randomize是系统函数:生成随机种子
系统的伪随机原则是给一个特定的程序点一个特定的随机种子,在此基础上生成一个伪随机数
所以所有相同位置的伪随机数都是一样的,而不同位置的伪随机数则是不同的
randomize是给全程序生成随机种子的,timer是系统值,是当前时间
如果你两天的同一时刻执行程序,得到的结果应该一样
拜托
timer是函数
14 楼
xrj1998 [专家分:0] 发布于 2009-07-28 15:13:00
加上randomized timer就可以了
15 楼
梦幻小樱 [专家分:140] 发布于 2009-08-06 12:56:00
不管关上多少次,再运行多少次,只要不加randomize,它的值就只会是那一个.
当然,加上for循环的话: for n=1 to 10
print rnd
这样的话,得出的10个数都不相同;但是每次运行的话,得出的10个数还是一样的
我是针对这个告诉你的
10个rnd在程序执行的过程中分别相当于在10个不同的位置执行了吧
这就是所谓“不同位置的伪随机数则是不同的”
请大家自觉采用c99标准中的int main
main函数的默认返回值是0
void main是国产教材的典型误区
16 楼
phile [专家分:2310] 发布于 2009-08-06 19:23:00
加一个RANDOMIZE TIMER就可以了!
17 楼
探索者I [专家分:20] 发布于 2009-09-03 21:44:00
呃.....RANDOMIZE TIMER随机种子........加在程序最前面
18 楼
phile [专家分:2310] 发布于 2009-09-05 12:22:00
不一定
19 楼
zhangyurui2000427 [专家分:80] 发布于 2009-10-05 13:12:00
randomize是系统函数:生成随机种子
系统的伪随机原则是给一个特定的程序点一个特定的随机种子,在此基础上生成一个伪随机数
所以所有相同位置的伪随机数都是一样的,而不同位置的伪随机数则是不同的
randomize是给全程序生成随机种子的,timer是系统值,是当前时间
如果你两天的同一时刻执行程序,得到的结果应该一样
拜托
timer是函数
20 楼
190009 [专家分:0] 发布于 2009-10-09 16:56:00
要用RANDOMIZE TIMER
否则只是假随机!( ⊙o⊙ )千真万确
O(∩_∩)O谢谢
我来回复