PB powerbuilder 的rand函数生成随机数的机制

PB每次调用rand函数获取的随机数,实际上是从固定的数组(即随机数种子)中读取的,而非真正意义上的随机数。

比如函数rand(100),在程序中:

第一次调用,函数返回42。

第二次调用,函数返回68。

第三次调用,函数返回35。

...

也就是:42、68、35、1、70、25、79、59...这样一个固定的数组。

程序关闭后重新运行,会按照相同的顺序返回相同的值。


获取真正意义上的随机数,就需要用到Randomize函数,可以选择不同的随机数种子,而Randomize(0)则是随机选择,这样就可以获取真正意义上的随机数。


int i
string ls_msg
Randomize(0)
for i = 1 to 10 
     ls_msg += string(rand(100))+'~r~n'
next
messagebox("",ls_msg)

猜你喜欢

转载自blog.csdn.net/wosind/article/details/81167248