xpban2006 发表于 2011-3-23 00:39:37

Random($XX,$xx,1)为什么随机数总重复呢?

用random做随机取数,采用的是IniRead读取最小数和最大数的参数,但总是重复几个数,不能最大随机,如果直接添入random的最小数和最大数就可以,不知什么原因,哪位大位回复下,谢谢啦!

netegg 发表于 2011-3-23 00:42:26

random本来出来的就是伪随机

love5173 发表于 2011-3-23 09:32:06

回复 2# netegg
能不能讲解一下伪随机的局限性

kevinch 发表于 2011-3-23 12:03:26

取不重复的随机数,我一般用字典过滤,效果很好。

netegg 发表于 2011-3-23 13:45:58

http://baike.baidu.com/view/1127.htm

xpban2006 发表于 2011-3-24 12:01:31

回复 4# kevinch


    能简单说下字典过滤吗?之前没听说过,谢谢!

kevinch 发表于 2011-3-24 13:20:03

#include <array.au3>

$o_Dic=objcreate("scripting.dictionary");创建字典项目
Do
        $i_N=int(random(10,50))
        $o_Dic(string($i_N))=""   ;把得到的值作为字典的key添加到字典中,如果重复的不会改变
until $o_Dic.count=20;当字典的keys达到20个时跳出循环
_ArrayDisplay($o_Dic.keys);显示一下结果(与后面注释的等价,因为返回的是个集合)
;$a_Arr=$o_Dic.keys
;_ArrayDisplay($a_Arr)给段代码,稍稍注释了一下,看楼主能看明白不。

xpban2006 发表于 2011-3-24 18:12:42

你真是大好人,谢谢,我研究研究!~~

netegg 发表于 2011-3-24 20:13:05

回复 7# kevinch
这有必要用字典吗,做个动态数组的事

kevinch 发表于 2011-3-24 20:54:59

回复kevinch
这有必要用字典吗,做个动态数组的事
netegg 发表于 2011-3-24 20:13 http://www.autoitx.com/images/common/back.gif
数组不循环能判断出来重复吗?少的话无所谓,多了的话用循环就太慢了吧。而字典是不需要循环的,多少都无所谓,不是很好吗?

蜘蛛抱蛋 发表于 2011-3-25 13:32:51

要多次用Random函数生成‘不同的’随机数,首先要调用SRandom函数生成种子。具体的你可以谷歌一下
页: [1]
查看完整版本: Random($XX,$xx,1)为什么随机数总重复呢?